How to Optimize Microsoft Dynamics CRM 2011 Applications (Part 3)

In Part 1, I highlighted changes to improve performance for the Microsoft Dynamics CRM Web Application. Part 2 focused on performance improvements for CRM customizations. In this blog, I will highlight changes to improve performance for the following:

  • Microsoft Dynamics CRM SDK Applications and
  • Microsoft Dynamics Reporting Services.

Microsoft Dynamics CRM SDK Applications

It is imperative to ensure the optimal performance of any custom applications, plug-ins, or add-ins developed using the Microsoft Dynamics CRM 2011 SDK.

A precise recommendation for any custom application is to limit any columns and rows retrieved to those required to achieve the application’s business goals. This technique is particularly significant when CRM users access the data from a Wide Area Network (WAN) with higher network latencies. The data returned by custom applications can be limited:

  • when using ‘Condition’ attributes to restrict the data that the ‘FetchXML’ and ‘ConditionExpressions’ queries return,  and
  • When using paging to restrict the number of rows returned by a custom application.

NOTE: For Microsoft Dynamics CRM deployments that are integrated with other systems, test custom applications in an environment similar to the complexity and integration present in the production environment. Another thing to keep in mind is that performance results may vary if the database on the test system is not of similar size and structure to that in the production environment.

Microsoft Dynamics CRM Reporting Services

There are a variety of factors that can affect report server performance:

  • hardware,
  • number of concurrent users accessing reports,
  • the amount of data in a report, and
  • output format.

Organizations that have smaller data sets and a smaller amount of users can deploy on a single server or on two servers, with one computer running Microsoft Dynamics CRM Server 2011 and the other computer running Microsoft SQL Server and SQL Server Reporting Services.  Performance will be affected with larger datasets, more users, or heavier loads.  Optimizing reporting services would be required, if it is noted that the usage for reports has increased.

Consider these guidelines when optimizing Microsoft Dynamics CRM 2011 Reporting Services:

  • Ensure that the computer hosting the report server includes ample memory as report processing and rendering are memory intensive operations.
  • Host the report server and the report server database on separate computers instead of hosting both on a single high-end computer.
  • When there are signs of all reports processing slowly, contemplate a scaled-out deployment with multiple report server instances. For best results consider using load balancing software and hardware to allocate requests evenly across multiple report servers in the deployment.
  • If only one report is processing slowly, tune the query if the report must run on demand.  Consider caching the report or running it as a snapshot as well.
  • Consider the following if all reports process slowly in a specific format (for example, while rendering to PDF):
    • File share delivery;
    • Adding more memory;
    • Using another format (Excel, CSV, etc)

Optimizing and Maintaining the Microsoft Dynamics CRM 2011 Outlook Client

Access to Microsoft Dynamics CRM is available in one of three ways:

  1. The Microsoft Dynamics CRM web client leverages Internet Explorer versions 7 through 9 as a browser to provide access to Microsoft Dynamics CRM functionality without requiring the install of any type of client software on the user’s computer.  In the very near future CRM will be supporting multiple browsers.
  2. The Microsoft Dynamics CRM 2011 for Microsoft Office Outlook client provides a familiar experience to the user since it is highly integrated with Outlook. This version of the client also provides offline access as a second configuration option, allowing users to go offline with synchronized Microsoft Dynamics CRM data.
  3. Users can also connect to an implementation of Microsoft Dynamics CRM from an Internet-enabled mobile device, such as a cell phone, tablet, by using the Mobile Express client, which provides access via a lightweight version of the Microsoft Dynamics CRM web client.  In the very near future CRM will be supporting a variety of mobile devices.

This article will focus on optimizing and maintaining the performance of the Microsoft Dynamics CRM 2011 Outlook client.

The major factors that can affect Microsoft Dynamics CRM 2011 client Outlook performance:

  1. Processes and applications running on the client computer
  2. Type of hardware on the client computer
  3. Version of software on the client computer
  4. Network characteristics
  5. Complexity of customizations
  6. Microsoft Dynamics CRM Outlook client configurations

1. BUSINESS Processes and Applications

Some Antivirus applications can cause performance issues with web based applications such as Microsoft Dynamics CRM, particularly those that scan webpages for malicious JavaScript. In cases like this, adding the URL of the Microsoft Dynamics CRM organization to the list of excluded web sites can improve performance. Also removing the CRM file directory from being scanned can improve performance.  Prior to removing web sites and files from being scanned considerate decisions need to be made on what needs to be included and excluded so that there are no undesirable consequences.

Where ever possible turn off non-critical business processes, music/video streaming, gaming software and third party add-ins for Outlook that are not needed to accelerate performance.

2. Hardware Requirements

Component *Minimum *Recommended
Processor (32-bit) 750-MHz CPU, or comparable Multi-core 1.8-GHz CPU or higher
Processor (64-bit) x64 architecture or compatible 1.5 GHz processor Multi-core x64 architecture 2 GHz CPU or higher such as AMD Opteron or Intel Xeon systems
Memory 2 GB RAM 4 GB RAM or more
Hard disk 1.5 GB of available hard disk space 2 GB of available hard disk space
Display Super VGA with a resolution of 1024×768 Super VGA with a resolution higher than 1024×768

* Actual requirements and product functionality may vary based on your system configuration and operating system.

3. Software Requirements

Microsoft Dynamics CRM for Outlook software component prerequisites

The following components must be installed and running on the computer before you run Microsoft Dynamics CRM for Outlook setup:

  • The following versions of Internet Explorer
    • Internet Explorer 7
    • Internet Explorer 8
    • Internet Explorer 9
  • The following versions of Microsoft Office
    • Microsoft Office 2003 with SP3 or later version
    • Microsoft Office 2007
    • Microsoft Office 2010
    • Indexing Service (must be installed and running)

If the following components are missing, they will be installed by Microsoft Dynamics CRM for Outlook setup:

  • Microsoft SQL Server 2008 Express Edition (Microsoft Dynamics CRM for Outlook with Offline Access only)
  • Microsoft .NET Framework 4
  • Microsoft Windows Installer (MSI) 4.5
  • MSXML 4.0
  • Microsoft Visual C++ Redistributable
  • Microsoft Report Viewer 2010
  • Microsoft Application Error Reporting
  • Windows Identity Framework (WIF)

Other prerequisites:

  • Microsoft Internet Explorer 6 or earlier versions are not supported
  • Microsoft Office XP and Microsoft Outlook 2000 versions are not supported for installing and running Microsoft Dynamics CRM for Outlook
  • For the 64-bit version of Microsoft Dynamics CRM for Outlook, a 64-bit version of Office 2010 is required
  • Before you run the Configuration Wizard to configure Microsoft Dynamics CRM for Outlook, a Microsoft Outlook profile must exist for the user
  • Microsoft Outlook must be run at least once to create the user’s Microsoft Outlook profile
  • Cross browser support is coming in the near future in the Microsoft Dynamics CRM Q2 2012 Update

4. Network Characteristics

One of the main causes of poor performance of the Microsoft Dynamics CRM Outlook Client is the latency of the network over which the clients connect to the Microsoft Dynamics CRM Server. Lower latencies normally provide better levels of performance. Latency is the time required for a signal to travel from one point on a network to another. While latency of a network connection can be low, bandwidth (capacity of a specific communications channel) can be a factor if there a lot of resources sharing the network connection, e.g. file downloads and high e-mail traffic.  It is highly recommended to test Microsoft Dynamics CRM Outlook Client performance in a Wide Area Network (WAN) configuration to determine possible bandwidth or latency issues as this testing can vary greatly from performance in a Local Area Network (LAN) configuration.

5. Level of Customization Complexity

When considering performance optimization of Microsoft Dynamics CRM outlook clients, the following should be kept in mind:

  • Number of —
    • Columns in views
    • Columns and grids in use
    • Rows returned per page
    • Sub-grids used on a page
    • Controls on a form (form design)
    • Controls on the ribbon
    • Pinned views
  • Complexity and number of visualizations used in dashboards
  • Use of Jscript and Plugins. Advanced Jscript can add a significant amount of time to, open, save, close and other events especially if calls are made to Microsoft Dynamics CRM or other system. Also plug-ins can affect performance when saving.

In environments with high latency and/or low bandwidth, it is recommended to limit use of these features and functionalities as much as possible without compromising business requirements.

6. Microsoft Dynamics CRM Outlook Client Configurations

For Microsoft Dynamics CRM for Outlook performance optimization, configure the Outlook synchronization filters to affect the fewest record types as well as to occur as infrequently as possible without compromising business requirements and avoid the creation of duplicate records if key fields match.

Note: Over very high latency connections, often a Terminal Services/Citrix connection will improve performance. Note that Terminal Services/Citrix connections are only accessible via Microsoft Dynamics CRM for Outlook; Terminal Services does not support Microsoft Dynamics CRM for Outlook with Offline Access.

In order to optimize Address Book performance, the Address Book should be configured 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. For Example, the address book synchronization can be done every 8 hours.

With Microsoft Dynamics CRM for Outlook, users can open tabs to display multiple views of an entity. Users can also “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 users “pin” the views with which they most commonly interact.

Important: Each pinned view consumes system resources (memory), so balance the use of pinned views against the need for system resources. To optimize the offline synchronization process on computers running Microsoft Dynamics CRM for Outlook with Offline Access, consider the following:

  • Assign all users roles with the minimum access levels and permissions required to perform a job function to help ensure optimized data synchronization to the offline client.
  • Whenever possible, avoid using:
    • “Parent downloaded=true” clauses. Use of this clause often results in the synchronization of unnecessary data, which can degrade the performance of the synchronization process.

Create local data filters for each offline client to ensure that users only have offline access to the data required to perform their job functions. One the local data filters are setup, be sure to remain online and synchronize the data manually. The first synchronization will be slower than subsequent synchronizations because Microsoft Dynamics CRM must remove records.