Optimizing and Maintaining the Performance of CRM Clients


This is the title of a White Paper that was published by Microsoft and that is available for download here.

I’d like to summarize this white paper, as a quick reference for a future use.

1. In general

  • Use IE9
  • Set Power Settings to “High Performance” (under “Show additional plans”)
  • Turn off other non-critical applications
  • Disable other Outlook add-ins
  • Exclude CRM pages from AntiVirus scans
  • Ensure network’s latency is under 150 milliseconds
  • Limit the number of columns, grids and subgrids, records per page, controls on a form, controls on the ribbon, client side events
  • Limit the complexity of Javascript, plugins, dashboards
2. For Internet Explorer:
  • Increase the amount of hard disk space that is reserved for temporary Internet files (the closer to 250 MB, the better)
  • Increase the number of files that can be downloaded at one time to 10
    • For IE7 and before: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionInternet Settings, new dword values: MaxConnectionsPer1_0Server to 10, and MaxConnectionsPerServer to 10
    • For IE8 and later:
      new dword value: iexplore.exe, 10
    • This can also be done with group policy: under Local Group Policy, under User Configuration, navigate to: Administrative TemplatesWindows ComponentsInternet ExplorerSecurity FeaturesAJAX and specify the appropriate values for the Maximum number of connections per server (HTTP 1.0) and Maximum number of connections per server (HTTP 1.1)
  • Set ie zoom to 100%

3. For the Outlook Client:

  • Configure the Outlook filters to affect as few records as possible
  • Configure the synchronization process to occur as infrequently as possible
  • Modify the frequency of the background polling activities. The table below lists the registry keys associated with activity:
Registry Entry Unit of Measure Default Duration/Value Registry Subkey (in HKEY_CURRENT_USERSoftwareMicrosoft) Suggested Testing
NotificationPollInterval Msec 180000 (Decimal) MSCRMClient Increment to 3600000 (Decimal)
StateManagerPollInterval Min 5 (Decimal) MSCRMClient Increment to 10 (Decimal)
TagPollingPeriod Msec 300000 (Decimal) MSCRMClient{ORGGUID} Increment to 600000 (Decimal)
TagMaxAggressiveCycles Not Applicable 2 MSCRMClient{ORGGUID} Set to 0
ActiveCachesUpdatingPeriodMilliseconds Msec 1500000 (Decimal) MSCRMClient Increment to 3000000 (Decimal)
IncrementalDataCachesInclusionUpdatingPeriodMilliseconds Msec 300000 (Decimal) MSCRMClient Increment to 6000000 (Decimal)
IncrementalDataCachesExclusionUpdatingPeriodMilliseconds Msec 300000 (Decimal) MSCRMClient Increment to 6000000 (Decimal)
  • Optimize Address Book performance by configuring the Address Book to match only against the contacts that are synchronized to Microsoft Dynamics CRM and to retrieve updates as infrequently as possible without compromising business requirements
  • With Microsoft Dynamics CRM for Outlook, users can “pin” views so they always display when a user logs in to Outlook. Pinned views, which are stored in cache, respond more quickly than do standard views, so be sure that suggest that users “pin” the views with which they most commonly interact. Note: Each pinned view consumes system resources (memory), so balance the use of pinned views against the need for system resources.
  • Optimize the offline synchronization process
    • Assign all users roles with the minimum access levels
    • Whenever possible, avoid using “Parent downloaded=true” and sliding time windows.
    • Implement local data filtering for each offline client to ensure that users have offline access only to the data required to perform their job functions
    • Configure offline synchronization to run in the background periodically, for example every 15 minutes, to improve performance

4. About CRM Customzation:

  • Use Javascript, columns, grids, iFrames, subgrids judiciously
  • Use role-based forms to limit the fields that display on a form
  • Adjust security roles to limit the functionality presented to users
  • Consider the complexity and number of visualizations used in the dashboards
  • Limit the number of rows that are returned per page
  • Hide the Get Started pane

Leave a Reply

Your email address will not be published. Required fields are marked *