MSCRM4 Optimizing and Maintaining
MSCRM4 Optimizing and Maintaining
ust respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any informa
.
d in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without
rovided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellec
t, Visual Basic, Visual C++, Visual SourceSafe, and Visual Studio are either registered trademarks or trademarks of Microsoft Corporation, FRx Software Corporation, or Microsoft Bu
White Paper
Microsoft Dynamics is a line of integrated, adaptable business management solutions that enables you and your
people to make business decisions with greater confidence. Microsoft Dynamics works like and with familiar
Microsoft software, automating and streamlining financial, customer relationship and supply chain processes in a
way that helps you drive business success.
U.S. and Canada Toll Free 1-888-477-7989
Worldwide +1-701-281-6500
www.microsoft.com/dynamics
Legal Notice
The information contained in this document represents the current view of Microsoft Corporation on the issues
discussed as of the date of publication. Because Microsoft must respond to changing market conditions, it should
not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of
any information presented after the date of publication.
This White Paper is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED
OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under
copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or
transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for
any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights
covering subject matter in this document. Except as expressly provided in any written license agreement from
Microsoft, the furnishing of this document does not give you any license to these patents, trademarks,
copyrights, or other intellectual property.
© 2009 Microsoft Corporation. All rights reserved.
Microsoft, MS-DOS, Windows, Windows Server, Windows Vista, Active Directory, SQL Server, Outlook, BizTalk,
FRx, Microsoft Dynamics, Microsoft Dynamics Logo, SharePoint, Visual Basic, Visual C++, Visual SourceSafe, and
Visual Studio are either registered trademarks or trademarks of Microsoft Corporation, FRx Software Corporation,
or Microsoft Business Solutions ApS in the United States and/or other countries. Microsoft Business Solutions ApS
and FRx Software Corporation are subsidiaries of Microsoft Corporation.
All other trademarks are property of their respective owners.
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Table of Contents
Preface...............................................................................................................................6
Introduction........................................................................................................................7
Architecture for Implementing Microsoft Dynamics CRM 4.0...................................................7
The Client Tier...............................................................................................................8
The Application Tier.......................................................................................................8
The Data Tier................................................................................................................8
Recommended Approach to Optimization and Maintenance....................................................9
Optimizing and Maintaining Client Tier Performance................................................................10
Optimizing Network Performance......................................................................................10
Configuring Client-Side Caching.....................................................................................10
Configuring Content Expiration......................................................................................11
Using Compression Techniques......................................................................................11
Optimizing and Maintaining Microsoft Dynamics CRM for Outlook..........................................12
Hardware Requirements...............................................................................................12
Optimizing the Synchronization Process..........................................................................12
Optimizing Address Book Performance............................................................................12
Bypassing the Proxy Server for On-premise Deployments within a LAN...............................13
Improving Startup Time for Microsoft Dynamics CRM for Outlook.......................................14
Disabling Extraneous Processes and Applications.............................................................14
Reducing Exchange Traffic by Modifying Outlook Rules.....................................................14
Optimizing Offline Synchronization.................................................................................15
Microsoft Dynamics CRM for Outlook Diagnostics.............................................................16
Optimizing and Maintaining Application Tier Performance.........................................................17
Optimizing and Maintaining Microsoft Windows Server.........................................................17
Optimizing the Performance of Microsoft Windows Server.................................................17
Windows Server Configuration Options.........................................................................17
Increasing the Ephemeral TCP Port Limit......................................................................17
Monitoring the Performance of Microsoft Windows Server..................................................18
Optimizing and Maintaining the Microsoft .NET Framework and Microsoft .NET Applications......19
Optimizing the Performance of the Microsoft .NET Framework...........................................19
Potential Performance Issues......................................................................................19
Monitoring the Performance of Microsoft .NET Framework Applications...............................20
Optimizing and Maintaining Internet Information Services....................................................21
Optimizing the Performance of Internet Information Services............................................21
Optimizing the Performance of Integrated Windows Authentication and Kerberos
Authentication...........................................................................................................21
Additional Optimization Considerations.........................................................................22
Optimizing Microsoft .NET ThreadPool Settings..............................................................22
Monitoring the Performance of Internet Information Services............................................23
Optimizing the Performance of Microsoft Dynamics CRM 4.0.................................................24
Hardware Requirements...............................................................................................24
Installing Microsoft Dynamics CRM on Multiple Servers.....................................................24
Enhancing Performance by Distributing Server Roles........................................................24
Overview..................................................................................................................24
Considerations for Distributing Server Roles..................................................................25
Optimizing the Performance of Microsoft Dynamics CRM 4.0 Applications............................25
Optimizing the Performance of the Microsoft Dynamics CRM Web Application....................25
3
Note: For a listing of the changes included as part of the June 2009 v2.0 update, see
Appendix D: Summary of Changes in v2.0 Update.
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Preface
This white paper is intended to complement, rather than replace, existing resources that are
specific to optimizing and maintaining the components that make up a MS Dynamics CRM
implementation. To that end, this document provides relevant context for each topic,
information on maintaining and optimizing that component specifically within the MS Dynamics
CRM implementation, and links to related resources that may offer additional guidance for a
particular environment.
Important: The optimization techniques and performance improvements provided in this
paper are based on a Microsoft Dynamics CRM 4.0 implementation with a standard
configuration. When considering the applicability of the information provided in this paper to a
specific implementation, be sure to keep in mind the following points:
Depending on the level of customization in a specific Microsoft Dynamics CRM 4.0
implementation, these techniques may perform differently or yield varying results.
Verify the functionality and performance impact of any of these optimization techniques
before implementing them in a production environment.
For Microsoft Dynamics CRM deployments that are integrated with other systems, test
optimization techniques in an environment that approximates the complexity and
integration present the production environment.
Performance on test systems may not reflect that of production Microsoft Dynamics CRM
servers if the test server does not have the same integrations to other systems as the
production Microsoft Dynamics CRM Server. Also, performance results may vary if the
database on the test system is not of similar size and structure to that in the production
environment.
Caution: To protect against the risk of losing information in the system or Microsoft Windows®
Active Directory® databases, create back-up copies of all databases before performing any of
the optimization techniques described in this white paper.
Important: The graphic shows one example of the architecture for implementing Microsoft
Dynamics CRM 4.0. Planning an implementation for your environment may indicate that an
alternate structure is more appropriate for your business.
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
This general architecture provides for three logical tiers within a Microsoft Dynamics CRM 4.0
implementation. Understanding the unique characteristics of each tier in the solution is a
critical element in being effective at optimizing and maintaining system performance.
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Optimizing and Maintaining Client Tier Performance
Optimizing Network Performance
Optimizing the performance of the network that supports a Microsoft Dynamics CRM 4.0
implementation is a critical step for ensuring that the system operates efficiently.
The primary factors that define network performance are bandwidth and latency.
Bandwidth is the width or capacity of a specific communications channel.
Latency is the time required for a signal to travel from one point on a network to
another; latency is a fixed cost between two points. To optimize for latency, eliminate
as many round trips per request as possible.
Networks with high bandwidth do not guarantee low latency. For example, a network path
traversing a satellite link often has high latency, even though throughput is very high. It is not
uncommon for a network round trip traversing a satellite link to have five or more seconds of
latency. An application designed to send a request, wait for a reply, send another request,
wait for another reply, and so on, will wait at least five seconds for each packet exchange,
regardless of how fast the server is.
In addition to optimizations that apply generally to all Microsoft Dynamics CRM 4.0
implementations, there are a variety of techniques aimed specifically at overcoming latency
and maximizing bandwidth utilization to ensure the best performance in these settings.
Note: Over very high latency connections, often a Terminal Services/Citrix connection will
provide for improved 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.
Important: It is recommended to test the implications of client performance in any WAN
environment with potential bandwidth or latency issues.
10
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Optimizing and Maintaining Microsoft Dynamics CRM for
Outlook
Hardware Requirements
Before you consider optimizing the performance of Microsoft Dynamics CRM for Outlook, verify
that the client computers meet the associated hardware requirements.
Note: For the full requirements associated with running Microsoft Dynamics CRM for Microsoft
Office Outlook, see the Microsoft Dynamics CRM 4.0 Implementation Guide at:
http://www.microsoft.com/downloads/details.aspx?FamilyID=1ceb5e01-de9f-48c0-8ce2-
51633ebf4714&DisplayLang=en
The following table lists the minimum and recommended hardware requirements for Microsoft
Dynamics CRM for Outlook.
11
12
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
You experience a delay when you use your Windows XP computer to log on to a domain
or to connect to a network resource
http://support.microsoft.com/kb/832161
13
14
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Note: For additional information about optimizing and maintaining the Microsoft Dynamics
CRM E-mail Router, see the Optimizing the Data Tier section of this white paper. For
information about optimizing and maintaining Microsoft Exchange Server, in the Exchange
Server TechCenter, see the following resources:
Exchange Server 2003
Performance and Scalability Guide for Exchange Server 2003
http://technet.microsoft.com/en-us/library/aa996078(EXCHG.65).aspx
Exchange Server 2007
Monitoring Exchange 2007 with Microsoft Operations Manager 2005 SP1
http://technet.microsoft.com/en-us/library/bb201735(EXCHG.80).aspx
15
16
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Optimizing and Maintaining Application Tier
Performance
Optimizing and Maintaining Microsoft Windows Server
Optimizing the Performance of Microsoft Windows Server
In many respects, Windows Server is foundational component in a Microsoft Dynamics
CRM 4.0 implementation. As a result, proper configuration of the Windows Server operating
system is a critical step in ensuring the optimal performance of any Microsoft Dynamics
CRM 4.0 deployment.
17
18
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Optimizing and Maintaining the Microsoft .NET Framework and
Microsoft .NET Applications
Optimizing the Performance of the Microsoft .NET Framework
Configuring the.NET Framework for optimal performance involves tuning the common
language runtime (CLR) and then, depending on the nature of any specific application, tuning
the associated .NET Framework technology, for example ASP.NET-connected applications, Web
services, Enterprise Services, and ADO.NET code.
Note: For more information about monitoring the performance of Microsoft .NET framework
applications, see the following resources:
Performance Counters in the .NET Framework
http://msdn2.microsoft.com/en-us/library/w8f5kw2e.aspx
Monitoring ASP.NET Performance
http://technet2.microsoft.com/windowsserver/en/library/0b792d7c-30ca-4349-af4c-
e000643aa6f31033.mspx?mfr=true
20
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Optimizing and Maintaining Internet Information Services
Optimizing the Performance of Internet Information Services
Optimizing the performance of Microsoft Internet Information Services (IIS) within a Microsoft
Dynamics CRM 4.0 implementation benefits not only the overall system, but also any custom
applications, plug-ins, or add-ins that have been developed by using the Microsoft Dynamics
CRM 4.0 SDK.
Note: For more information about optimizing IIS performance, see the following resources:
Internet Information Services 6
Performance Tuning (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/71490a
ae-f444-443c-8b2a-520c2961408e.mspx?mfr=true
IIS 6.0 Operations Guide (IIS 6.0)
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/dcec9cb
2-9270-4ea5-8556-46528fea058d.mspx?mfr=true
Internet Information Services 7
IIS 7.0 Configuration Reference
http://www.iis.net/ConfigReference
IIS 7.0 Output Caching
http://learn.iis.net/page.aspx/154/iis-7-output-caching/
IIS 7.0 Performance Discussions
http://forums.iis.net/1050.aspx
Parameter Value
maxWorkerThreads 100
maxIoThreads 100
maxconnection 12*n (where n is the number of CPUs)
minFreeThreads 88*n
minLocalRequestFreeThread 76*n
s
minWorkerThreads 50 (manually add this parameter and value to the file)
Note: For more information about configuring Microsoft .NET ThreadPool settings, see the
Knowledge Base article Contention, poor performance, and deadlocks when you make Web
service requests from ASP.NET applications at:
http://support.microsoft.com/kb/821268
Several of these recommendations include a formula to calculate the number of CPUs on a
server. The variable that represents the number of CPUs in the formulas is N. For these
22
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
settings, if you have hyperthreading enabled, you must use the number of logical CPUs
instead of the number of physical CPUs. For example, if you have a four-processor server for
which hyperthreading has been enabled, the value of N in the formulas will be 8 instead of 4.
Note: When you use this configuration, you can execute a maximum of 12 ASP.NET requests
per CPU at the same time because 100-88=12. Therefore, at least 88*N worker threads and
88*N completion port threads are available for other uses (such as Web service callbacks).
Using the example of a server with four processors and hyperthreading enabled, these
formulas result in the following configuration:
<processModel maxWorkerThreads="100" maxIoThreads="100"
minWorkerThreads="50"><httpRuntime minFreeThreads="704"
minLocalRequestFreeThreads="608"><connectionManagement><add
address="[ProvideIPHere]" maxconnection="96"/></connectionManagement>
Note: For more information, in the MSDN prescriptive guidance Improving .NET Application
Performance and Scalability, see Chapter 6 — Improving ASP.NET Performance at:
http://msdn2.microsoft.com/en-us/library/ms998549.aspx
For general information about how to configure IIS to improve performance of Web service
calls from ASPX pages, see the MSDN article At Your Service: Performance Considerations for
Making Web Service Calls from ASPX Pages at:
http://msdn2.microsoft.com/en-us/library/Aa480507.aspx
23
Hardware Requirements
Before you consider optimizing the performance of servers running Microsoft Dynamics
CRM 4.0, verify that the computers meet the associated hardware requirements.
Note: For the full requirements associated with running Microsoft Dynamics CRM 4.0, see the
Microsoft Dynamics CRM 4.0 Implementation Guide at:
http://www.microsoft.com/downloads/details.aspx?FamilyID=1ceb5e01-de9f-48c0-8ce2-
51633ebf4714&DisplayLang=en
The following table lists the minimum and recommended hardware requirements for Microsoft
Dynamics CRM 4.0.
24
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
The following table describes the server role groupings provided in Microsoft Dynamics
CRM 4.0 Enterprise Edition.
25
26
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Optimizing the Performance of Microsoft Dynamics CRM Customizations
When optimizing the performance of Microsoft Dynamics CRM customizations, keep in mind
the following guidelines:
Carefully consider the potential effects on your organization’s business before removing
or changing a column in the ORDER BY clause. There may be important business reasons
associated with the order of display in query results. Diminishing the business value of a
query to improve its performance is not a viable tradeoff.
Use an iterative process to determine which index best optimizes query performance.
Test each index using a variety of selection criteria that may be common for the specific
query. While one set of criteria may yield the expected performance increase from an
index, different criteria may have no effect.
In addition, be sure to consider the following optimization techniques.
Disabling Auto-Complete on Lookups
Microsoft Dynamics CRM 4.0 introduced a new feature that provides auto-complete
functionality on lookup fields. Enabled by default, this feature can help to increase user
efficiency. However, auto-complete can also impact overall performance and resource
utilization in a Microsoft Dynamics CRM 4.0 solution.
To optimize an implementation that is not meeting performance requirements, where possible,
it is recommended to disable this functionality. To Disable Auto-Complete on Lookups in
Dynamics CRM 4.0, navigate to Entity Customization and update the properties on the lookup
fields by checking the option to 'Turn off automatic resolutions in field'.
Note: In certain scenarios, turning off the Forms Assistant can also help to improve the
performance of a Microsoft Dynamics CRM 4.0 implementation.
To disable Auto-Complete on Lookups
1. Log on to Dynamics CRM 4.0 as a user that has access to Customize Entities.
2. Navigate to Settings | Customization, and then select Customize Entities.
3. Double-click the entity for which you want to disable the auto-complete feature, and
then click on Forms and Views.
4. Select the Form or View for which you want to disable the auto-complete to open the
Form for the entity, and then select the field for which Auto-complete is configured.
5. Click Change Properties, and then in the Field Properties window, on the Display
tab, select the 'Turn off automatic resolutions in field' check box.
6. Repeat this procedure on each Entity/Field combination for which you want to disable
the auto-complete feature.
Optimizing Custom Entity Creation and Importation
Turning off activities or notes when they are not required will improve the efficiency of the
system at creating and importing custom entities.
27
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Note: For information about tools and guidelines for configuring Microsoft Dynamics CRM
Reporting Services for optimal performance, see the following resources:
Planning for Scalability and Performance with Reporting Services
http://go.microsoft.com/fwlink/?LinkID=70650
Using Visual Studio 2005 to Perform Load Testing on a SQL Server 2005 Reporting
Services Report Server
http://msdn2.microsoft.com/en-us/library/aa964139.aspx
For more information, see Monitoring Report Server Performance at:
http://msdn2.microsoft.com/en-us/library/ms159809.aspx
For information about mitigating performance issues by tuning memory management
configuration settings, see Configuring Available Memory for Report Server Applications at:
http://msdn2.microsoft.com/en-us/library/ms159206(SQL.100).aspx
29
Optimizing Workflow
Enabling new workflow options in Microsoft Dynamics CRM 4.0 can affect the overall
performance of the implementation.
Best Practices
When considering how to ensure that Microsoft Dynamics CRM workflow functionality performs
optimally for a specific implementation, keep in mind the following best practices.
Define the business purposes for implementing workflow prior to enabling the
functionality. During planning, analyze the business scenario and determine the primary
goals of workflow within the solution. Microsoft Dynamics CRM 4.0 workflow functionality
can provide for businesses process automation, exception handling, and end-user alerts.
Determine the appropriate security/permissions model for workflow. With clearly
established business goals in place, determine the scope of users that will be affected by
the workflow implementation. Be sure to identify the users who will create and maintain
workflows; apply and track workflows; and troubleshooting workflow issues.
Use the Scope property judiciously. The Scope property associated with workflow rules
defines the breadth of records affected by that rule. For example, rules configured with a
User scope affect only the records owned by that user, while rules configured with an
Organization scope will affect all records within organization, regardless of which user
owns each record. Be sure to specify the appropriate scope value for each workflow rule
to minimize the number of related system events.
30
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Review workflow logic carefully. Workflows that include infinite loopbacks, which because
of semantic or logic errors, can never terminate through normal means, can greatly
impact overall workflow performance. When creating and implementing workflow
functionality within a Microsoft Dynamics CRM 4.0 deployment, be sure to review the
logic in workflow rules and any associated plug-ins for potential loopback issues.
Additionally, as part of ongoing maintenance efforts, periodically publish workflow rules
and review them to ensure duplicated workflow rules are not affecting the same records.
Use caution when defining workflows that are triggered on update events. Given the
frequency at which Update events occur, be precise in specifying which attributes the
system “listens to” to trigger updates. In addition, avoid using “wait” states in workflows
that are triggered on Update events
To improve performance in large deployments, scale out as necessary. For large-scale
deployments, use dedicated machines to run the Async service. In addition, be sure to
provide a dedicated API Server for each instance of the Async service.
Test workflows. Be sure to test and monitor the performance of new workflow
functionality before implementing it in a production environment.
Async plug-ins. Consider carefully whether plug-ins should run synchronously or
asynchronously. If the priority is user responsiveness then running a plug in
asynchronously will enable the User Interface to respond more quickly to the user.
However, asynchronous plug-ins introduce additional load to the server to persist the
asynchronous operation to the database and rehydrated within the Async Service. If
scalability is more important, then running plug-ins synchronously will typically require
less load on the servers.
Balancing async plug-ins and workflows. Async plug ins and workflows are managed as
records in the asyncoperationbase table of equal priority. Therefore, consider carefully
the relative importance of the system’s workflows before introducing high levels of
asynchronous plug-ins to the solution. A large number of asynchronous plug-ins will
impact on the workflows that the Async Service can process which may be undesirable to
the overall solution by reducing the overall throughput or increasing the time between
triggering and processing of individual workflows.
Child Workflows. Child workflows run as independent workflow instances from their
parents. This can enable parallel processing on a system with spare capacity which can
be useful for workflows with multiple independent threads of high processing activity. It
can also introduce additional overhead if the parallel processing is not critical, e.g.
because other threads of workflow logic are blocked waiting for external events to occur.
Important: If the existing workflow functionality within a Microsoft Dynamics CRM 4.0
implementation fails to perform properly, verify that the Async service is running
properly. Often, restarting the Async service will restore Workflow functionality.
Monitor the Microsoft Dynamics CRM 4.0 database for excess workflow log records.
Workflow processing in Microsoft Dynamics CRM relies on the Asynchronous Service,
which logs its activity in both the dbo.AsyncOperationBase table and
dbo.WorkflowLogBase tables. As the number of workflow records in the Microsoft
Dynamics CRM 4.0 database grows over time, performance may be impacted.
31
Important: The Workflow Engine includes an internal system setting that specifies the
interval at which jobs are polled for processing. If you have a strong business case for
modifying this setting, contact Microsoft Dynamics CRM 4.0 support. For more information
about Microsoft Dynamics CRM 4.0 support options, see the Microsoft Dynamics CRM
Customer Service Support page at:
http://crm.dynamics.com/support/supportoptions.aspx
32
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Optimizing and Maintaining Data Tier Performance
Optimizing and Maintaining Microsoft SQL Server and the
Microsoft Dynamics CRM Database
Microsoft SQL Server performance can be affected by a variety of factors, from poor database
design to improper server configuration. In addition to performing the standard recommended
practices for maintaining Microsoft SQL Server, be sure to implement an alert strategy to send
notifications if the computer reaches any of a pre-determined set of performance thresholds.
Note: For more information about optimizing and maintaining the performance of Microsoft
SQL Server, see the following resources:
SQL Server Performance Dashboards
http://www.microsoft.com/downloads/details.aspx?familyid=1D3A4A0D-7E0C-4730-
8204-E419218C1EFC&displaylang=en
SQL Server Best Practice Analyzer
http://www.microsoft.com/downloads/details.aspx?FamilyId=DA0531E4-E94C-4991-
82FA-F0E3FBD05E63&displaylang=en
Microsoft SQL Server TechCenter
http://technet.microsoft.com/en-us/sqlserver/default.aspx
Optimizing Server Performance
http://msdn2.microsoft.com/en-us/library/ms188284.aspx
Microsoft SQL Server Performance Blog
http://blogs.msdn.com/sqlperf/
Important: Microsoft SQL Server 2008 features, including Compression, Sparse Columns,
and Backup Compression, when implemented properly, can improve the performance of a CRM
implementation. For more information about improving Microsoft Dynamics CRM performance
with Microsoft SQL Server 2008, see the white paper Improving Microsoft Dynamics CRM
Performance and Securing Data with Microsoft SQL Server 2008 at:
http://www.microsoft.com/downloads/details.aspx?FamilyID=b5bb47a4-5ece-4a2a-a9b5-
5435264f627d&DisplayLang=en
Configuring the Disk Subsystem for Optimal Performance
With a physical disk that maintains 64 sectors per track, Windows always creates the partition
starting at the sixty-forth sector, thereby misaligning it with the underlying physical disk. To
ensure proper disk alignment, use the diskpart.exe utility, provided with Microsoft Windows
Server 2003 Service Pack 1, to explicitly set the starting offset in the master boot record.
Note: Diskpart.exe supersedes the functionality previously offered by Diskpar.exe.
Caution: Diskpart.exe is a data destructive utility that wipes all data from a disk during the
storage track boundary alignment process. Therefore, if the disk on which you will run
Diskpart contains data, backup the disk before performing the following procedure.
To align I/O with storage track boundaries using Diskpart.exe
1. If the disk you are aligning is blank (raw), proceed to Step 3.
2. If the disk contains data, backup the disk before proceeding.
3. Delete all partitions on the disk.
4. At a command prompt, type diskpart.exe
33
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Disabling Support for Parallel Plan Queries
On computers with multiple processors, Microsoft SQL Server determines the optimal number
of processors, degree of parallelism, required to run a single statement, for each parallel plan
execution. Administrators can use the ‘max degree of parallelism’ option to limit the number of
processors to use in parallel plan execution.
In a default configuration of Microsoft SQL server, the ‘max degree of parallelism’ value is set
at 0, which specifies to use all available processors. Setting this value to 1 will suppress
parallel plan generation, while setting the value to a number greater than 1 (up to a maximum
of 64) will restrict the maximum number of processors used by a single query execution. If a
value greater than the number of available processors is specified, the actual number of
available processors is used. If the computer has only one processor, the ‘max degree of
parallelism’ value is ignored. This setting can be changed by using SQL Server Management
Studio, or using the sp_configure system stored procedure.
Important: ‘Max degree of parallelism’ is an advanced setting. To use the sp_configure
system stored procedure to change the setting, the ‘show advanced options’ must be set to 1.
The setting takes effect immediately (without restarting the MSSQLSERVER service). For more
information, see the topic max degree of parallelism Option at:
http://msdn2.microsoft.com/en-us/library/ms181007.aspx
For more information about setting the ‘max degree of parallelism’ value in SQL Server
Management Studio, see How to: Configure the Number of Processors Available for Parallel
Queries (SQL Server Management Studio) at:
http://msdn2.microsoft.com/en-us/library/ms189094.aspx
Using Efficient Queries
When planning a query strategy, keep in mind these guidelines for designing efficient queries.
Retrieve only the data required to meet a specific business requirement. Retrieving more
data than actually required can lead can lead to increased network traffic and require
additional server and client resources.
Avoid mixing OLTP, OLAP, and reporting workloads. OLTP workloads typically have many
small transactions, with very quick response time expected from the user. OLAP and
reporting workloads typically have a few long-running operations that can consume more
resources and cause more contention. Avoid mixing these types of workloads if possible.
Avoid using specific types of transactions. Avoid using long-running transactions,
transactions that depend on user input to commit, transactions that never commit
because of an error, and non-transactional queries inside transactions, which can lock
resources that might otherwise be used to bolster overall performance.
Use efficient schemas. Query inefficiencies can stem from poor schema design. This can
result, for example, in too many or inefficient join operations. Schema design is largely a
tradeoff between good read performance (improved through de-normalization) and good
write performance (improved through normalization).
Use indexes properly. Create indexes to support the queries that are issued against your
server, and avoid using too many indexes, which can affect the insert and update
performance. Balance indexing needs according to business requirements.
Note: For more information about using indexes properly, see the section of this paper
titled Optimizing and Maintaining Database Indexes.
35
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
drive at a time, and this might reduce performance. A better solution in terms of performance
is to stripe the data files of your partitions across more than one disk by setting up a RAID. In
this way, although SQL Server still sorts data by partition, it can access all the drives of each
partition at the same time. This configuration can be designed regardless of whether all
partitions are in one filegroup or multiple filegroups.
Maintaining Query Performance
Over time, the performance of existing queries may regress, or new queries may take longer
than expected to complete. The degradation in performance can result from a number causes,
such as changes in statistical data that lead to a poor query plan for an existing query, missing
indexes that force table scans, or an application slow down resulting from excessive blocking.
Be sure to monitor query performance regularly to help maintain optimal performance.
Optimizing and Maintaining the Microsoft Dynamics CRM Database
The performance of the Microsoft Dynamics CRM database depends in part on the
configuration of the physical design structures in the database, which include indexes,
clustered indexes, indexed views, and partitions, whose purpose is to enhance performance
and manageability of databases.
Note: For more information about optimizing and maintaining the Microsoft Dynamics CRM
database, see Optimizing Workflow in this document. Also, in SQL Server Books Online, see
Designing and Creating Databases at:
http://msdn2.microsoft.com/en-us/library/ms191425.aspx
Segregating the Database and Transaction Log Files
Creation of transaction log files can be write-intensive during periods when there is a high
volume of data being added, changed, or removed from the application. For optimal
performance, ensure that database files and transaction log files are on located on separate
sets of physical disks.
Optimizing and Maintaining Database Indexes
Optimizing and maintaining database indexes is a critical step in managing the overall
performance of the Microsoft Dynamics CRM 4.0 database. In fact, maintaining indexes is a
key factor in achieving minimum disk I/O for all database queries. The database maintenance
command ALTER INDEX can help in de-fragmenting indexes in Microsoft SQL Server and in
rebuilding one or more indexes for a specific table. For large databases, consider creating
indexes on separate file groups.
Note: For more information, in SQL Server Books Online, see the following resources:
Optimizing Indexes
http://msdn2.microsoft.com/en-us/library/ms190910.aspx
ALTER INDEX (Transact-SQL)
http://msdn2.microsoft.com/en-us/library/ms188388.aspx
Performing Index Operations Online
http://msdn2.microsoft.com/en-us/library/ms177442.aspx
Important: While creating customized indexes can help to improve query performance within
a CRM implementation, be sure to avoid making any modifications to the default indexes that
are included with Microsoft Dynamics CRM 4.0.
37
38
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Consider the example scenarios provided in the following table.
Configuration Setting Example Scenarios
Connection Timeout Because connections to some forward mailboxes can be unreliable,
(seconds) an administrator might configure the ‘Connection Timeout
(default = 300) (seconds)’ setting to a low value to prevent the e-mail router from
“hanging” on a particular mailbox.
Maximum Messages When configured to process multiple forward mailboxes, the e-mail
Per Cycle router uses parallel processing to act on two mailboxes
(default = 1000) simultaneously. However, a single forward mailbox receiving a
sudden blast of e-mails could potentially engage a thread for an
unacceptable period of time. To introduce some level of fairness,
an administrator might configure the ‘Maximum Messages Per
Cycle’ setting to limit the number of e-mails the e-mail router
would process in a single mailbox before automatically freeing up a
thread to advance to the next forward mailbox.
Polling Period When configured to process multiple forward mailboxes, the e-mail
(seconds) router uses a parallel polling strategy. Each polling cycle consists of
(default = 60) logging on, in sequence, to pairs of forward mailboxes, followed by
a sleep. The ‘Polling Period (seconds)’ setting controls the duration
of the sleep period. In general, increasing the duration of the sleep
period decreases the need for system resources. However, if the e-
mail router must process several forward mailboxes, a lengthy a
sleep period may not be optimal.
Message Expiration Administrators can configure the ‘Message Expiration (seconds)’
(seconds) setting to control the period that the router will attempt to deliver
(default = 86400 an e-mail before moved it to the undeliverable folder. Note that if
[24 hours]) the value is set too low, a simple CRM server reboot may cause
failures, while if the value is set too high, excessive retries may
waste system resources.
39
Improving Microsoft Dynamics CRM Performance and Securing Data with Microsoft
SQL Server 2008
http://www.microsoft.com/downloads/details.aspx?FamilyID=b5bb47a4-5ece-4a2a-
a9b5-5435264f627d&DisplayLang=en
Microsoft Dynamics CRM 4.0 for Microsoft Office Outlook Readme (On-Premise and
Hosted Editions)
http://www.microsoft.com/downloads/details.aspx?FamilyId=18D51D2E-F82B-46CF-
8CAC-DF06A5F6555F&displaylang=en
Important: For the latest information about Microsoft Dynamics CRM 4.0 performance and to
learn about the release of additional support resources, visit the Microsoft Dynamics CRM
Team blog (http://blogs.msdn.com/crm/).
40
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Technical Services
Consider the following resources for technical services beyond the scope of those offered by
the Microsoft Dynamics CRM Technical Presales Advisory Group (TPAG) as outlined at the
following PartnerSource Web site: https://partner.microsoft.com/global/40023009
Note: For services outside of North America, EMEA, and the United Kingdom, contact your
local Microsoft Support Services or Microsoft Consulting Services (MCS) office to request
hardware sizing or architecture services (availability may vary).
41
Authentication counters
42
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
The following table describes the counters provided by the CRM Authentication performance
object.
Table 2: CRM Authentication counters
Counter Name Description
ConfigDBWindowsAuthentication The total number of authentication requests that are processed
AttemptsInTheLastMinute per minute by using the MSCRM_CONFIG database. This counter
includes successful and unsuccessful authentication attempts for
a particular organization.
This counter is useful to show the authentication engine
throughput of requests that use the MSCRM_CONFIG database
and are not requests for access to a specific organization.
Together with the Processor and Memory counters, this counter
can indicate whether the Microsoft Dynamics CRM server is
overloaded with authentication requests and may require load
balancing.
ConfigDBWindowsAuthentication The number of unsuccessful authentication requests per minute
FailuresInTheLastMinute that are processed by using Active Directory authentication
credentials. This counter measures the entire Microsoft Dynamics
CRM deployment including all organizations.
A high count may indicate that the system is possibly under a
Denial of Service attack, or there is some problem with the
Authentication service configuration.
CrmPostAuthenticationAttempts The total number of authentication requests per minute that are
InTheLastMinute processed by using Active Directory authentication credentials.
This counter includes successful and unsuccessful authentication
attempts, and measures the entire Microsoft Dynamics CRM
deployment including all organizations.
This counter is useful to show the authentication engine
throughput of requests for access to a specific organization in an
Internet-facing deployment of Microsoft Dynamics CRM. Together
with the Processor and Memory counters, this counter can
indicate whether the Microsoft Dynamics CRM server is
overloaded with authentication requests and may require load
balancing.
CrmPostAuthenticationFailures The number of unsuccessful authentication requests per minute
InTheLastMinute that are processed by using Microsoft Dynamics CRM
authentication credentials. This counter measures the entire
deployment including all organizations.
A high count may indicate that the system is possibly under a
Denial of Service attack, or there is some problem with the
Authentication service configuration.
43
44
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
OutlookSync counters
The following table describes the counters provided by the CRM OutlookSync performance
object.
Table 3: CRM OutlookSync counters
Counter Name Description
Total ABP Sync The total number of Address Book Provider (ABP) synchronization requests
Requests made from Microsoft Dynamics CRM for Outlook clients to a Microsoft
Dynamics CRM Server.
This counter is useful to indicate the client load on the Asynchronous
Processing Service. A high count indicates a high client load on that service.
Total Offline Sync The total number of offline synchronization requests made from Microsoft
Requests Dynamics CRM for Outlook clients to a Microsoft Dynamics CRM Server.
This counter is useful to indicate the client load on the Asynchronous
Processing service. A high count indicates a high client load on the service.
Total Outlook Sync The total number of ABP Sync Requests and the Offline Sync Requests.
Requests This counter is useful to indicate the client load on the Asynchronous
Processing Service. A high count indicates a high client load on that service.
Total Succeeded The number of successful offline synchronization requests made from
Offline Sync Microsoft Dynamics CRM for Outlook clients to a Microsoft Dynamics CRM
Requests Server.
A count that is much lower than the total number of offline synchronization
requests may indicate a problem with clients that try to synchronize with the
server.
Discovery counters
The following table describes the counters provided by the CRM Discovery performance
object.
Table 4: CRM Discovery counters
Counter Name Description
Failed Discovery The number of requests to the Microsoft Dynamics CRM Discovery service
Service Requests that are unsuccessful for any reason. For example, a request may fail
because the requesting party is not recognized as user in the requested
organization.
A high count may indicate that the system is possibly under a Denial of
Service attack, or there is some problem with the Discovery service
configuration.
Successful Discovery The number of requests to the Microsoft Dynamics CRM Discovery service
Service Requests that completed successfully.
Total Discovery The total number of requests received by the Microsoft Dynamics CRM
Service Requests Discovery service. This includes successful and unsuccessful requests.
This counter can be used to track traffic patterns for Discovery service
capacity planning.
45
Platform counters
The following table describes the counters provided by the CRM Platform performance object.
Table 6: CRM Platform counters
Counter Name Description
Average time of The average time that is required to process Microsoft Dynamics CRM data
import request import requests.
Import requests are resource-intensive SQL operations. If the average time is
too high and the number of concurrent imports is high, some organizations
may have to be moved to a different server. Also, you may want to consider
processing import jobs during a maintenance window to reduce the
performance effect on users.
Number of import The number of requests that have been submitted by an organization in the
requests per hour past hour.
This counter is useful to indicate how many import requests are being
processed concurrently.
Number of publish The number of requests that have been submitted by an organization in the
requests per hour past hour.
This counter is useful to indicate how many publish requests are being
processed concurrently.
46
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Async service counters
The following table describes the counters provided by the CRM Async Service performance
object.
Table 7: CRM Async Service counters
Counter Name Description
Active Organizations The total number of organizations in the Microsoft Dynamics CRM
deployment that are actively being polled by the Microsoft CRM
Asynchronous Processing Service.
Activity Propagation The total number of activity propagation operations that have completed
Operations Completed for all organizations in the deployment.
Activity Propagation The total completion throughput of activity propagation operations for all
Operations Completion organizations in the deployment.
Throughput
Activity Propagation The current number of activity propagation operations being processed by
Operations Executing asynchronous handlers for all organizations in the deployment.
Activity Propagation The total number of activity propagation operations that failed for all
Operations Failed organizations in the deployment.
Activity Propagation The total number of activity propagation operations that failed and then
Operations Failed with tried again to execute for all organizations in the deployment.
Retry
Activity Propagation The current number of activity propagation operations that are
Operations Outstanding outstanding. This includes in-memory queued items for all organizations in
the deployment.
Bulk Detect Duplicates The total number of bulk detect duplicates operations that have completed
Operations Completed for all organizations in the deployment.
Bulk Detect Duplicates The total throughput of bulk detect duplicates operations completed for all
Operations Completion organizations in the deployment.
Throughput
Bulk Detect Duplicates The total number of bulk detect duplicates operations that are currently
Operations Executed being processed by asynchronous handlers for all organizations in the
deployment.
Bulk Detect Duplicates The total number of bulk detect duplicates operations that failed for all
Operations Failed organizations in the deployment.
Bulk Detect Duplicates The total number of bulk detect duplicates operations that failed and then
Operations Failed with tried again to execute for all organizations in the deployment.
Retry
Bulk Detect Duplicates The total number of bulk detect duplicates operations that are currently
Operations Outstanding outstanding, including in-memory queued items, for all organizations in
the deployment.
Bulk Email Operations The total number of bulk e-mail operations completed for all organizations
Completed in the deployment.
Bulk Email Operations The throughput rate of bulk e-mail operations completed for all
Completion Throughput organizations in the deployment.
Bulk Email Operations The total number of bulk e-mail operations that are currently being
Executing processed by asynchronous handlers for all organizations in the
deployment.
47
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Table 7: CRM Async Service counters
Counter Name Description
Import Operations The total number of import operations that failed for all organizations in
Failed the deployment.
Import Operations The total number of import operations that failed and then tried again to
Failed with Retry execute for all organizations in the deployment.
Import Operations The current number of import operations outstanding. This includes in-
Outstanding memory queued items for all organizations in the deployment.
Items Dequeued per The number of asynchronous operations that have been removed from the
Organization processing queue for an organization.
Items in memory The maximum number of asynchronous operations to hold in memory for
(high) processing.
Items in memory (low) The threshold of asynchronous operations to trigger loading of additional
operations.
Parse Operations The total number of parse operations that have been completed for all
Completed organizations in the deployment.
Parse Operations The throughput rate of parse operations completion for all organizations in
Completion Throughput the deployment.
Parse Operations The current number of parse operations being processed by asynchronous
Executing handlers for all organizations in the deployment.
Parse Operations Failed The total number of parse operations that failed for all organizations in the
deployment.
Parse Operations Failed The total number of parse operations that failed and then tried again to
with Retry execute for all organizations in the deployment.
Parse Operations The total number of parse operations currently outstanding. This includes
Outstanding in-memory queued items for all organizations in the deployment.
Persist Match Code The total number of persist match code operations completed for all
Operations Completed organizations in the deployment.
Persist Match Code The throughput rate of persist match code operations completion for all
Operations Completion organizations in the deployment.
Throughput
Persist Match Code The total number of persist match code operations that are currently being
Operations Executing processed by asynchronous handlers for all organizations in the
deployment.
Persist Match Code The total number of persist match code operations that failed for all
Operations Failed organizations in the deployment.
Persist Match Code The total number of persist match code operations that failed and then
Operations Failed with tried again to execute for all organizations in the deployment.
Retry
Persist Match Code The total number of persist match code operations that are currently
Operations Outstanding outstanding, including in-memory queued items for all organizations in the
deployment.
Publish Duplicate Rule The total number of publish duplicate rule operations completed for all
Operations Completed organizations in the deployment.
49
50
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Table 7: CRM Async Service counters
Counter Name Description
Rate of Bulk Email The rate at which bulk e-mail operations failed and then tried again to
Operations Failed with execute for all organizations in the deployment.
Retry
Rate of Collect Sqm The rate at which SQM data collection operations failed with an exception
Data Operations Failed for all organizations in the deployment.
with Exception
Rate of Collect Sqm The rate at which SQM data collection operations failed and then tried
Data Operations Failed again to execute for all organizations in the deployment.
with Retry
Rate of Event The rate at which event operations failed with an exception for all
Operations Failed with organizations in the deployment.
Exception
Rate of Event The rate at which event operations failed and then tried again to execute
Operations Failed with for all organizations in the deployment.
Retry
Rate of Import The rate at which import operations failed with an exception for all
Operations Failed with organizations in the deployment.
Exception
Rate of Import The rate at which import operations failed and then tried again to execute
Operations Failed with for all organizations in the deployment.
Retry
Rate of Parse The rate at which parse operations failed with an exception for all
Operations Failed with organizations in the deployment.
Exception
Rate of Parse The rate at which parse operations failed and then tried again to execute
Operations Failed with for all organizations in the deployment.
Retry
Rate of Persist Match The rate at which persist match code operations failed with an exception
Code Operations Failed for all organizations in the deployment.
with Exception
Rate of Persist Match The rate at which persist match code operations failed and then tried again
Code Operations Failed to execute for all organizations in the deployment.
with Retry
Rate of Publish The rate at which publish duplicate rule operations failed with an exception
Duplicate Rule for all organizations in the deployment.
Operations Failed with
Exception
Rate of Publish The rate at which publish duplicate rule operations failed and then tried
Duplicate Rule again to execute for all organizations in the deployment.
Operations Failed with
Retry
Rate of Quick The rate at which quick campaign operations failed with an exception for
Campaign Operations all organizations in the deployment.
Failed with Exception
51
52
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Table 7: CRM Async Service counters
Counter Name Description
Transform Operations The total number of transform operations that are currently being
Executing processed by asynchronous handlers for all organizations in the
deployment.
Transform Operations The total number of transform operations that failed for all organizations in
Failed the deployment.
Transform Operations The total number of transform operations that failed and then tried again
Failed with Retry to execute for all organizations in the deployment.
Transform Operations The current number of transform operations outstanding. This includes in-
Outstanding memory queued items for all organizations in the deployment.
Workflow Operations The total number of workflow operations that have completed for all
Completed organizations in the deployment.
Workflow Operations The throughput rate of completed workflow operations for all organizations
Completion Throughput in the deployment.
Workflow Operations The total number of workflow operations that are currently being
Executing processed by asynchronous handlers for all organizations in the
deployment.
Workflow Operations The total number of workflow operations that failed for all organizations in
Failed the deployment.
Workflow Operations The total number of workflow operations that failed and then tried again to
Failed with Retry execute for all organizations in the deployment.
Workflow Operations The current number of workflow operations outstanding. This includes in-
Outstanding memory queued items for all organizations in the deployment.
53
54
OPTIMIZING AND MAINTAINING THE PERFORMANCE OF MICROSOFT DYNAMICS CRM 4.0 (V2) JUNE 2009
Appendix D: Summary of Changes in v2.0 Update
A summary of the revisions and additions associated with the June 2009 update (v2.0) of this
white paper are listed below.
Updated hardware requirements for:
o Microsoft Dynamics CRM 4.0
o Microsoft Dynamics CRM 4.0 for Outlook
Categorized references/links to external content to by product version where appropriate
(e.g. Windows Server 2003 and Windows Server 2008), and provided additional
references where available
In the section Optimizing and Maintaining Internet Information Services, added
the topic Optimizing the Performance of Integrated Windows Authentication and Kerberos
Authentication
In the section Optimizing the Performance of Microsoft Dynamics CRM:
o In the topic Enhancing Performance by Distributing Server Roles, added the sub-
topic Considerations for Distributing Server Roles
o In the topic Optimizing the Performance of Microsoft Dynamics CRM 4.0
Applications, in the sub-topic Optimizing the Performance of Microsoft Dynamics
CRM Customizations, supplemented the information on disabling auto-complete on
lookups with procedural information
In the section Optimizing Workflow, added multiple best practices.
In the section Optimizing and Maintaining Microsoft SQL Server and the Microsoft
Dynamics CRM Database:
o Added note about and reference to white paper Improving Microsoft Dynamics CRM
Performance and Securing Data with Microsoft SQL Server 2008
o In the topic Optimizing and Maintaining Query Performance, added the sub-topic
Enhancing the Performance of the Display of Query Results
o In the topic Optimizing and Maintaining the Microsoft Dynamics CRM Database,
added the sub-topic Implementing Solid State Drive Technology
Added Appendix B: CRM Performance Counters; created Appendix C: CRM E-mail Router
Performance Counters for previously published Appendix B content
Added Appendix D: Summary of Changes in v2.0 Update (June 2009)
55