In other posts, I have posed various questions regarding how to collect certain bits of information from AF, create and perform calculations, and do all of this in a highly performing manner. I've browsed some very helpful examples (e.g. Search Example, Loading Partial Element Hierarchy, etc.). But in the end, I have not met my goal for performance and am to the point where I feel like I need to take another strategy. So I'm opening the floor in hopes to get some good ideas.
The application I would like to run has the following goals:
- Retrieving a list of all elements in a given PI AF database that derive from a known template (25k+ elements).
- Retrieving snapshot data from PI based on up to 5 attributes associated to each element (125k+ tags).
- Requesting up to 3 FilteredSummaries calls per element (75k+ calcs).
- Doing all of the above in less than 2min.
I can tell you that I've done this in PI and PI AF 2012 and got the performance to about 3-4min at best. I recently did an upgrade to PI and PI AF 2015 and the performance went to ~15min. There may be a number of reasons for that, so I'm not suggesting 2015 is slower, but based on some other metrics, I don't anticipate it would have made any difference to the performance I had with 2012.
So the ultimate question is: what is the optimal way for retrieving a large number of elements, a large number of tags (and values), and performing a large number of calculations. I am using C#.NET, but am open to other possibilities that aren't VB).
Many thanks ahead of time.