Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.2
-
None
Description
There are some performance issues with the current InstanceManagement.listXXXInstances() operations, notably:
1) listAllInstances() is quite dangerous – it will run into OutOfMemoryException if you have lots of instances
2) listAllInstancesWithLimit() is better but suffers performance-wise because it attempts to load the instance summary data, the events, the scopes and properties of the matching instances. This result is too much database activity for the common case, moreover the current implementation is horrific because it actually performs 4 joins for each instance!
So I'm introducing listInstancesSummary(String filter, String order, int limit) that only loads the instance summary and the properties in only 3 joins (total, not per instance) to address these performance issues and making both listAllInstances() and listAllInstancesWithLimit() use this method under the cover.