Update: Note that with the introduction of UR10 for CRM 2011, there have been some changes to the EnableRetrieveMultipleOptimization (ERMO) setting. See the updated KB article here: http://support.microsoft.com/kb/2535245
There is an enhanced setting (EnableRetrieveMultipleOptimization) that CRM 2011 Online customers can enable to decrease the duration of certain long running queries (ultimately improving performance if the customer is running into the issue). The issue is magnified for customers that are accessing views that contain a larger set of data (ex. > 100,000). End users will only see this issue if they have a CRM security role that has business unit or parent: business unit read access on the entity in question. This is a performance issue that would occur for certain users in one area of the product (consistently sluggish). If things perform well one minute, and are slower the next, that’s likely something else entirely. While not every CRM Online customer will need to enable this fix, there will be a number of customers that will see positive performance improvements if they do implement this.
***The EnableRetrieveMultipleOptimization setting can have the same effects in a CRM 2011 on-premise environment by enabling it through a registry key.***
- The EnableRetrieveMultipleOptimization functionality was introduced in CRM 4.0. Enhancements to the functionality have been made in CRM 2011 to cover basic (user), local (business unit), and deep (parent: child business unit) access levels. With the new functionality in place, we've seen certain long running queries greatly reduced (specifically when dealing with the local or deep access levels within CRM security roles). Improving these long running queries can result in much better performance.
- An easy workaround to verify if the customer is encountering this perf issue would be to move the user’s role to organizational access for the read privilege on the entity in question. For example, let’s assume that a customer is seeing very slow performance when opening the lead view. First, verify whether or not the user has a CRM security role that has business unit or parent: business unit access level on the Read privilege for the Lead entity. If they do, give the user a security role that has organizational level access on the Read privilege for the Lead entity. After this has been done, have the user attempt to reproduce the issue again. If you see that performance is now much better, the EnableRetrieveMultipleOptimization fix will likely positively impact the customers. If the customer enables this fix, users should be able to see better performance with their original CRM security roles than what they originally saw (the modified CRM security role would not be needed).
Requesting the fix:
- There is a tool available that to update the EnableRetrieveMultipleOptimization settings
- A download location for the tool, with instructions on tool usage, is available via Microsoft Knowledge Base article 2691237: "OrgDBOrgSettings Tool for Microsoft Dynamics CRM 2011"