In this blog, I will highlight changes to improve performance for Microsoft Dynamics CRM Customizations. Additional blogs will follow highlighting performance improvements to custom Microsoft Dynamics CRM SDK applications and Microsoft Dynamics CRM Reporting Services.
Microsoft Dynamics CRM Customizations Optimization
The following are guidelines to keep in mind when optimizing the performance of Microsoft Dynamics CRM customizations:
- Carefully consider the possible effects on your organization’s business before removing or changing the order of records returned by a saved query. There may be important business reasons associated with the order of display in query results. If there are business reasons for changing, consider adding an index based on the new ordering to improve the performance of the query.
- Use an iterative process to define which index best optimizes query performance. Test each index using a variety of selection criteria that may be common for the specific query. While one set of criteria may provide the projected performance increase from an index, different criteria may have no effect.
Consider these potential optimization techniques:
Disabling Auto-Complete on Lookups:
The Auto-Complete on Lookups functionality is enabled by default and while it can help to increase user efficiency, it can also affect overall performance and resource usage in a deployment of Microsoft Dynamics CRM 2011. For optimal performance, consider disabling this functionality:
- STEP 1: Log into Microsoft Dynamics CRM 2011 with a user that has a security role allowed to customize entities.
- STEP 2: Proceed to Settings > Customize the System > Components > Entities > Entity >Forms. In this case entity signifies the name of the entity to be modified and forms presents selecting the form that includes the field that needs to be modified.
- STEP 3: Once in ‘Form Design’ view, find the field for which Auto-Complete is configured and then select ‘Change Properties’.
- STEP 4: Once the ‘Field Properties’ window has appeared, proceed to the ‘Display’ tab and under ‘Field Behavior’ mark the check box to ‘Turn off Automatic Resolutions’ and select ‘OK’.
- STEP 5: Repeat this process on each Entity/Field combination where the auto-complete feature needs to be disabled.
Querying on Custom Entities:
When adding custom attributes to the Microsoft Dynamics CRM system or custom entities, the columns for those attributes are included in an extension table in the SQL Server database instead of the entity’s base table.
When considering performance optimization of queries on custom entities, confirm that all columns on the ‘Order By’ clause derive from a single table, and create an index that satisfies the ‘Order By’ requirements and as much of the queries ‘WHERE’ clause selection criteria as possible. The process of creating the appropriate index will be iterative, however the performance benefits can be significant if implemented correctly.
To learn more about Edgewater’s CRM practice, click here.
Image courtesy of xkcd.com