Performance Optimizations for Microsoft Dynamics CRM Online

Last Modified Monday, October 28, 2019
Top Solution


Best practices to improve performance of Microsoft CRM Online for your users.

Sign In Popup
Lock Icon

The content of this page is locked.

To access this information log in to CustomerSource.

Unable to log in to CustomerSource?

Visit our CustomerSource Help Page.


Lock Icon

The content of this page is locked.

To access this information log in to CustomerSource.

Unable to log in to CustomerSource?

Visit our CustomerSource Help Page.

Lock Icon

Your current service plan does not allow access to this information.

To learn more about Microsoft Dynamics Service Plans review our
service plan offerings.

​​Performance Optimizations​

Smooth performance in your CRM environment is critical to ensure high levels of productivity and an efficient use of resources.  Understanding the ways you can optimize performance of your CRM online system is critical to the success of your companies' implementation. 

Performance improvements to CRM database 
If you're using CRM Online, SQL database operations are performed behind the scenes by Microsoft administrators and algorithms for generating indexes are set to run automatically. However, there may be an instance where intensive searches are being performed via system views and Quick Finds on an entity with a large data set.  

  • Adding fields (up to 20) on an entity's Quick Find view will cause the system's algorithms to automatically rebuild the index.   
  • The addition of Lookup fields and option sets to a Quick Find can slow system performance as well and should be avoided if at all possible on large datasets.  
  • In order to pinpoint performance issues, a Microsoft support professional can provide you with information about long-running processes in your organization, along with a list of data tables and the number of rows in each. 

CRM Network Performance Improvements
Some performance issues arise as a result of the internet service provider (ISP), internal network configuration and the amount of time it takes to access CRM services.  To show network latency to CRM, you can use the client-side diagnostics page, by navigating to https://.crm.dynamics.com/tools/diagnostics/diag.aspx, or a tool such as NetRoute. These tools will display the number of hops happening in the network accessing CRM, as well as what CRM is returning to your network and will help identify any issues being caused by your local network. 

Troubleshooting Network Performance Tips 

  1. If you're experiencing performance issues, test with the firewall and antivirus programs disabled to see if the issue replicates itself.  
  2. Reduce the amount of ongoing processes and windows that are pulled up.   
  3. If the issue is happening on multiple computers, test one outside the network to see if a connectivity issue is impacting performance.  
  4. Verify that the user's computer and user profile on their local workstation is part of the active directory domain rather than the workgroup that may be setup by a local administrator. 

Performance improvements in the CRM user interface
Taking a holistic, high-level approach to the development on your forms from the beginning will ensure a pleasant user experience. 

Maximizing Outlook client performance  

Verify that computers running Dynamics CRM for Outlook are using Microsoft's recommended hardware requirements. This will provide the best user experience. See Microsoft Dynamics CRM for Outlook software requirements.  

Make sure the Outlook client and the computer's operating system has the latest version of Windows and Windows updates installed. 

Disable unneeded Outlook add-ins. This can be done by going to File > Options > Add-ins on your Outlook client. From here, you can see which add-ins are installed, and which are critical to performing job functions.  

Turning off automatic email tagging will improve system performance but will also require the user to track emails to the appropriate location in CRM manually. This can be done by going to Start > All Programs > Microsoft Dynamics CRM 2015 > Diagnostics > Synchronization Troubleshooting.  

If certain views are commonly used, you can pin them by clicking on the upper left hand corner pushpin icon on a view tab. Pinned views will display when a user logs into Outlook. Pinned views are cached and provide quicker loading times.  

The CRM address book is a list of CRM records that can be linked to Outlook activities such as email, appointments, and tasks.  By default the address book settings are set to look at all address books local to your Outlook.  If you update the Address Book settings to reference contacts that are only in Dynamics CRM then Outlook will find contacts more quickly. Note: This will require all contacts to be stored in CRM. In addition, reducing the interval of Address Book updating to the most infrequent time that is suitable to your organization will increase address book performance. See Set address book options in CRM for Outlook.  

Cached mode in Outlook exchange keeps current outlook items such as email, tasks, and appointments in local storage to improve performance, but this can also cause a lot more data to be stored locally for CRM to iterate through. If unneeded, turn off the Outlook Exchange Cached Mode

Increase disk space used for temporary Internet files. See Configuring Microsoft Dynamics CRM Clients for Optimal Performance.  

Having multiple instances of CRM connected to Outlook can have a performance impact on Outlook. Where possible, limit the amount of instances that Microsoft Dynamics CRM for Outlook is configured to access by removing organizations from the local CRM for Outlook client configuration wizard. 

For more information, see the
Optimizing and Maintaining Client Performance for Microsoft Dynamics CRM Online whitepaper.  

CRM Form Best Practices

  • Confine plug-in operations to run on as few entities as possible and querying as few entities as possible. 
  • Dynamics CRM uses cascading behaviors that begin at the highest level of the entity hierarchy. Performing operations that impact multiple records such as bulk operations or recursive plug-ins will be a drag on system performance.  For example a plugin that updates a record and that update triggers another plugin can cause significant performance impacts on processing times. 
  • Register the plug-in with a method that is not often processed by CRM.  For example registering plug-ins on a retrieve or RetrieveMultiple request that happens every time a user views data in the system is not recommended. 
  • With data requests, less data and fewer requests is more. 
  • In Jscript, sub-grids, and plug-ins, retrieve only the data that is needed as the time, rather than getting everything and filtering through a general result afterwards in the code. This will reduce time to return the information, as well as the processing time it takes to sort through it. Before writing a retrieve, determine which columns from an entity are needed first.   
  • Remove and delete unneeded fields, sections and tabs  
  • More items on a form will increase load times and visual clutter.  
  • Place the most important attributes in the first tab on the form, and collapse tabs where possible 
  • Collapsed tabs do not load until they are expanded 
  • Sub-grids, charts, and iFrames should be used only when needed.  Multiple sub-grids on a form can greatly impact the performance of a form because they are data intensive.  If you have the requirement to add multiple sub-grids to a form put them in tabs that are collapsed by default so the data is only loaded if the user expands the tab. 

CRM Development Best Practices 
Javascript is a great way to extend the functionality of your CRM environment and add business logic to forms. These principles will help ensure speed and ease of use when interacting with CRM. 

  • Use supported code. 
  • Javascript code in CRM should be implemented via the Xrm.Page object model. Unsupported code can cause errors, data loss and increased load times.  
  • Customize only where needed.  
  • It's best to use out-of-the-box functionality as much as possible. For instance, set the visibility of a field via the form versus using Javascript. If you need logic included, see if a Business Rule can provide the desired functionality. 
  • Reduce the size of code libraries.  
  • Writing code efficiently will cut down on load times. Large libraries will slow down performance, as CRM requests these every time a form loads.  
  • While testing, the use of console.log rather than alerts will also ensure an uninterrupted flow.  
  • Use asynchronous queries.  
  • This enables other form elements to load while the Javascript runs in the background.  
  • Avoid the use of onLoad events and adding code for build processes during onload. 
  • onChange events Javascript to be executed in response to user input.  

Performance Load and Stress Testing  
Load testing or stress testing a production environment of Dynamics CRM Online is discouraged and is not best practice. If load testing is an important issue for your organization, contact the Microsoft Premier Field Engineering (PFE) to assist in performing this service. 

Microsoft Dynamics CRM;CRM Online