Dynamics CRM in the Field

Information from the Microsoft Dynamics CRM PFE team working in the field

Microsoft CRM Online Performance Tips & Tricks - Part 2

Microsoft CRM Online Performance Tips & Tricks - Part 2

Rate This
  • Comments 1

In this post I'll be discussing the second part of troubleshooting and tuning performance with CRM Online.  In my last blog post, Microsoft CRM Online Performance Tips & Tricks - Part 1, I explained where to start with troubleshooting performance with CRM Online; evaluating user expectations and the different areas of the application, measuring performance, and establishing a baseline.  Once we have that information, we then started to look into the various parts that can affect performance, which we looked at hardware and software.  Continuing on with the other parts that affect performance, below I'll discuss: network connectivity, customizations, and the CRM client for Outlook.

Networking:

Connectivity to the CRM Online service is probably one of the larger areas that people think is a contributor to performance. In many cases the end users network connection to the CRM Online service is adequate.  What do we deem as an adequate connection to the service?

  • Bandwidth > 50 Kilobytes per Second
  • Latency < 150 milliseconds

The way to measure this speed is with the CRM Online Diagnostics Page.  Substitute your Organization Name in the URL below.

  • https://<Organization>.crm.dynamics.com\tools\diagnostics\diag.aspx

Once on the page click the Run button to test your Bandwidth and Latency, as well as the Jscript rendering times on your machine, measured by JavaScript Dom Benchmark.

If your connection is not within the adequate range for all users, some users, or some locations, start to narrow down what is different.

  • Prioritize the CRM traffic in your network.
  • If you have branch offices verify that their CRM Online traffic goes directly out to the internet and is not routed through a main office prior to going outside.
    • If you have any Proxy Servers or WAN Accelerators, check their configuration.
    • If these scan traffic, exclude this for CRM Online.
      • These devices could be modifying the headers of the packets and stopping compression and caching of the CRM Online traffic affecting performance.
        • Run a fiddler trace on the client machine to check if compression and caching is being used.
        • Compression:  On the Header look to see that you have Transport: "Content-Encoding: gzip"
  • If it is not working you will see the Transport look like: "Connection: Keep Alive"
  • Caching: On the Header, look to see that you have Caching: "Vary: Accept-Encoding"
    • If it is not working the Cache will show: "Vary: *"

Customizations:

A CRM Online deployment's customizations are often the biggest area that can affect performance that customers don't realize.

  • First establish what parts of CRM are slow as explained earlier.
    • Views
      • How many Fields/Columns are on the View?
        • Only put the fields that the users need to have.
        • Consider disabling the SkipGettingRecordCountForPaging using the OrgDBSettingsTool if it isn't something the users need or use.
        • Record Forms
          • What is on the Form?  How many fields, subgrids, and IFrames are there?  The more data on the form the longer it takes to retrieve and render on the end users machine.
          • Can you use role based forms to minimize the amount of data on forms for users?
            • For example we could have a Sales form and a Service Form.  Different user groups may only need access to certain fields, subgrids, IFrames.
            • If users don't need to see certain areas of the form all the time, consider collapsing them by default, especially subgrids.  This way when the form loads it doesn't have to load this data initially.  If the user needs to see it, they can expand it.
            • How much impact is your Jscript having on your forms?
              • Test by disabling your OnLoad and OnSave events and comparing against your baseline times.
              • Optimize your Jscript code.
            • Quick Find
              • Limit the number of fields you make available for quick find. 
              • Don't include Pick List values in quick finds if possible.

Outlook Client:

The last component to consider is the CRM Client for Outlook.  There are a number of configuration settings that can impact the performance of machine running the CRM Client for Outlook, namely sync process, email tagging and some functionality.

  • Outlook Synchronization
    • Evaluate the filters you have configured.  Only synchronize what data you need to have in Outlook.
      • Filters are set in Outlook under File | CRM | Set Personal Options | Synchronization tab | Outlook Filters | Verify the 'Outlook Synchronization Filters' is selected from the drop down.  Disable, add, and update the filters to control the data synchronization to Outlook.
      • Set the synchronization schedule to a longer duration so the synchronization process isn't constantly occurring on the machine.
        • The schedule is set in Outlook under File | CRM | Set Personal Options | Synchronization tab | update the 'Schedule automatic synchronization with Outlook folders every' value.
  • Address Book Provider
    • Set the filter to only match only your contacts.
      • The value is set in Outlook under File | CRM | Set Personal Options | Address Book tab | check the radio button for 'Match only against contacts synchronized to Microsoft Dynamics CRM'
      • Set the other records to 'Not Match', or 'Only Match Owning Records'.
        • The option is set in Outlook under File | CRM | Set Personal Options | Synchronization tab
  • Offline Synchronization Process
    • Evaluate the filters you have configured.  Only synchronize what data you need to have while working offline.  With CRM Online being available wherever you have an internet connection there shouldn't be many times when you'll need to work with data offline.
      • The filters are set in Outlook under File | CRM | Set Personal Options | Synchronization tab | Outlook Filters | Verify the 'Offline Synchronization Filters' is selected from the drop down.
      • Set your Synchronization Schedule to a longer duration so your sync process isn't constantly occurring on your machine.
        • The schedule is set in Outlook under File | CRM | Set Personal Options | Local Data tab | update the 'Update local data every' minutes value, and validate the checkbox is selected.
  • Pinned Views
    • Pinned views in Outlook take up memory on your client machine.  You can decrease this by following the steps below.
  • Email Tagging Queries
    • Minimize these by queries by adjusted System Settings within the CRM UI that can control how often these queries execute.
      • These settings are configured in CRM | Settings |Administration |System Settings | Outlook Tab
        • Uncheck the 'Perform checks as new e-mail is received'.
        • Update the 'Promote Incoming e-mail every' to a longer duration.

In these two posts on performance with CRM Online there are a large number of considerations and all of them are important and can affect customers at varying degrees.  As you make each change measure your performance so you know what changes are improving your performance and by how much.   In making multiple adjustments that give you small gains which in the end will add up to a noticeable improvement in performance for end users. 

Thanks!
Jaden

Microsoft Premier Field Engineer

   

  

  • Great article :)

Page 1 of 1 (1 items)
Leave a Comment
  • Please add 2 and 5 and type the answer here:
  • Post