Quick Optimization Tips

There are plenty of whitepapers, blogs and other resources for optimizing the performance of Microsoft Dynamics CRM 4.0, but in my experience, there are several key things that have the greatest impact on the user experience. Here’s my list of the top ways to improve CRM performance for your users, culled from the wide variety of resources out there:

  1. Client Machine Temporary Internet File Settings: First, in IE8, go to Safety > Delete Browsing History and place checkmarks next to ‘Temporary Internet Files’ and ‘Cookies’ – then press Delete. (In IE7, go to Tools > Delete Browsing History). Then, change the settings for Temporary Internet Files as follows: Go to Tools > Internet Options. In the Browsing History section, click on “Settings.” Under the “Check for newer versions of stored pages” select “Automatically” and set the amount of disk space to 250MB.
  2. For the Outlook Client:
    • Run Diagnostics Wizard to check performance and fix errors
    • In the Outlook client options, configure the following settings:
      • Synchronization Tab:
        • Select only record types that the user needs to be synchronized
        • Increase the interval for synchronization to 60 minutes
        • For Offline client, select “Do not create duplicates”
      • On the Address Book tab:
        • Select “Match only against contacts synchronized to Microsoft Dynamics CRM”
        • Select “Match only the items I own”
        • For the Offline Client: Deactivate unused local data groups, and Configure offline synchronization to run in the background every 15 minutes
  3. CRM Web Server Optimization:
    • Content Expiration: In IIS, go to the CRM web site properties and click on the HTTP Headers tab. Specify for content to expire in 15 days and click OK.
  4. CRM Database Server Optimization:
    • To minimize the performance impact on the Microsoft SQL Server that is used for Microsoft Dynamics CRM, whenever possible, search on three or fewer columns and select indexed columns, such as Address1: Street 1, that are appropriate for creating a SQL index. You can also improve performance by adding a non-clustered index, such as Address1:ZIP/Postal Code, to search columns.
    • Querying on Custom Entities: When you add columns to Microsoft Dynamics CRM database entities, the columns are included in an extension table rather than the entity‟s base table. To optimize the performance of queries on custom entities, ensure that all columns on the ORDER BY clause derive from a single table, and build an index that satisfies the ORDER BY requirements and as much of the query‟s WHERE clause selection criteria as possible. Determining this ideal index is likely to be an iterative process. However, when you implement this correctly, the performance benefit can be very significant.
    • Segregating the Database and Transaction Log Files: Transaction log files creation can be write-intensive during periods when there is a high volume of data being added, changed, or removed from the application. For optimal performance, ensure that database files and transaction log files are located on separate sets of physical disks.
    • Rebuild Indexes: Maintenance plan should include rebuilding indexes.
  5. Of course, last but not least, you should also have the latest update rollups applied on your CRM server and client machines.