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)