15 Tips and Safeguards to Speed Up Your CRM Server
Is your CRM feeling a bit sluggish? Are your forms and transactions not quite as snappy as they used to be? Take a peek at this roundup of tips and safeguards to keep your CRM in the fast lane.
#1 – Your Own Worst Enemy
One of my favorite tricks to help identify the cost of your own configuration is to create a new empty baseline organization. Do this and run your performance metrics against it and then again against one with your configuration deployed. All things equal, this will show you the approximate cost of your configuration.
#2 – Turbo Forms are Turbo
They don’t call them turbo forms for nothing. You actually have to go out of your way to not take advantage of these but it merits a quick check during any performance cycle.
Navigate over to Settings >> Administration >> System Settings >> Use legacy form rendering and check that it is set to No.
Note that, if this has been disabled, then someone may have had a reason to do so. Typically, this means that you have some legacy code that is not compatible with turbo forms.
#3 – The Secret CRM Diagnostic Tool
Buried deep within your CRM is the secret CRM Diagnostic tool available only to those who know where to find it. This is particularly useful if an individual user is having performance problems. Have that user open the page below locally and send you the results. A good rule of thumb is to keep latency under 150 ms.
Replace the bold section with your CRM server: https://myorg.crm.dynamics.com/tools/diagnostics/diag.aspx
Read more here: https://technet.microsoft.com/en-us/library/mt269872.aspx
#4 – The Double-Secret CRM Form Performance Utility
- Open a form (such as the Account form).
- Hit ctrl+shift+q.
- Click the enable button.
- Reload the form.
- Hit ctrl+shift+q again.
#5 – That’s the (alternate) Key!
This is a fairly recent addition. CRM allows you to define your own alternate keys for each entity. These can actually be single or composite fields if needed. They will enforce uniqueness on that field and will be automatically indexed. Navigate to your customizations section to add any relevant alternate keys. One of the best uses for this is when you have migrated data from a legacy system and are retaining the legacy key in CRM (you should see migration times improve).
Read more here: https://msdn.microsoft.com/en-us/library/dn932139.aspx
#6 – Client settings
It is likely that the internet browser is your users’ primary front-end for CRM. You may want to check their browser settings (or update GP) to wring a bit more performance out of the system.
Read more here: https://technet.microsoft.com/en-us/library/dn531125.aspx
#7 – Full Text Search
Enabling Full Text Search can have a significant improvement on the time it takes to use global search or quick find. Navigate to your system settings to find this feature under the General tab.
Note that this will change how searches are performed. Wildcards are no longer necessary and you can expect results to include some fuzzy matching which users typically prefer.
#8 – Turn High Performance Mode On
So, you want better performance? Did you consider enabling your server’s High Performance setting? Check the power options on all of your servers. These may have been set to Balanced during the OS install. Changing to High Performance will ensure that your CPU offers continuous processing power.
#9 – SSL
You’re probably aware that SSL increases the security of your site traffic by encrypting the bits over the wire but did you know that it also compresses your network traffic resulting in a net gain in performance? You do now. If you skipped this step during your initial installation, its time to open IIS and enable SSL.
#10 – WCF Compression
Especially for deployments using the Outlook plugin, you’re going to want to enable WCF Compression on certain types. This will reduce the amount of traffic between your CRM server and the Outlook client (or any other WCF components in your ecosystem).
#11 – Missing Indexes
Did you know that your SQL Server has been hard at work tracking all of your missing indexes? You do now. Periodically take a look at your missing indexes DMV to identify potential new SQL indexes. You shouldn’t just blindly create all of these missing items, but use this as a resource to identify your biggest offenders.
Read more here: https://msdn.microsoft.com/en-us/library/ms345434.aspx
#12 – Max Degrees of Parallelism
This SQL setting controls how many parallel query plans are considered for a request. The theory behind this is that SQL can spend a little extra time up front looking for the most efficient query plan which will be offset by the efficiencies gained by taking an optimal route. In practice, SQL will not beat the initial plan so we should tell it to not bother looking by setting this to 1.
sp_configure ‘show advanced options’, 1;
RECONFIGURE WITH OVERRIDE;
sp_configure ‘max degree of parallelism’, 1;
RECONFIGURE WITH OVERRIDE;
Read more here: http://msdn.microsoft.com/en-us/library/dd979074.aspx
#13 – DB Compatibility Level
You may have upgraded your SQL Server to the latest and greatest (and fastest) but did you remember to update the individual CRM database compatibility levels? This doesn’t happen by default and you may still be a few versions behind. Open up SSMS and take a peek at your DB settings to start taking advantage of the new query optimizer.
#14 – SQL Max Memory
Most DBAs will do this during your initial install but things can be missed or hardware can change over time (particularly in a virtualized environment where RAM can fluctuate on demand). Adjust your SQL max memory settings to use as much available memory as possible while still leaving a few gigs for the OS.
Read more here: https://msdn.microsoft.com/en-us/library/ms178067.aspx
#15 – Disable Tracing
You likely don’t have tracing enabled in your production environment but, if you had to troubleshoot an issue, it is possible that you had turned this on. Make sure you haven’t neglected to turn it back off.
That will do it for the speedy-server checklist. Thanks for reading!