Before we begin managing the
infrastructure, we need to understand the different tiers of the
Microsoft Dynamics CRM landscape (see Figure 3).
The three crucial tiers that comprise the CRM environment are the
client, application, and data tiers. It is important that each
individual tier be healthy and that the communications between the tiers
be stable.
Note
The tiers in Figure 3
represent a standard deployment. For organizations that use clustering
or load balancing, the same tiers would exist, but across multiple
servers.
In addition, the application tier can be deployed across multiple servers if application server roles are used.
Client Tier
The client tier is used by the end users
accessing the Microsoft CRM system. If the company doesn’t have a
standard for client machines, this can be a little challenging.
Typically, users have a poor Microsoft Dynamics CRM experience when the
following components are not performing at or above acceptable
thresholds in this tier:
In addition to these possible causes of a poor
client experience, offline access might create problems, too (for
example, if you use the Microsoft Dynamics CRM client for Outlook). If
your organization is using this feature, make sure to add additional
health-monitoring performance counters for the Microsoft SQL 2005
Express. Common counters for SQL Express include the following:
Processor
Memory
Offline database size
Note
System Center Configuration Manager provides a
way to deploy and maintain the client configuration settings. Medium to
large organizations can deploy a standard configuration and policy for
all clients.
Application Tier
The application tier is responsible for
retrieving the data from the data tier, processing the necessary
business logic (workflows), and serving web pages to the client tier. If
your organization has several users using Microsoft Dynamics CRM, you
may want to consider load balancing the application or using the
application role servers.
Performance problems generally occur in the following areas:
Data Tier
The data tier stores the data and returns any
results for the query made by the application tier. The database tier of
Microsoft Dynamics CRM 4.0 includes both Microsoft SQL Server and the
physical databases that contain the data related to the organization.
The data tier usually has only a few limitations:
To optimize SQL Server, SQL administrators must
analyze and perform various tasks to optimize Microsoft Dynamics CRM.
The most common cause of performance bottlenecks is sparsely populated
columns. SQL administrators need to weigh the pros and cons for the
environment. Here is a list of different optimizations that can be
performed on SQL Server, with some recommendations:
Use SQL Server 2008 compression.
Analysis:
Most columns in Dynamics CRM tables are sparsely populated (except for
system columns and required columns such as Account ID, Name, Phone
Number, and Email Address). SQL Server 2008 has new compression features
that improve the performance of a Microsoft Dynamics CRM 4.0
implementation.
Recommendation:
Identify the largest tables in the Dynamics CRM database (usually the
activity tables). Estimate savings for each table by using the
sp_estimate_data_compression_savings stored procedure. When the
estimates are returned, enable page compression on tables with mostly
static data, and enable row compression on entity tables.
Use SQL Server 2008 filtered indexes.
Analysis:
Filtered views are used to generate the grids within the Microsoft
Dynamics CRM application. This action usually loads anywhere from 25 to
200 records (based on the user’s setting). The Dynamics CRM application
automatically creates some indexes on the SQL Server tables to optimize
the user experience. However, filtered indexes allow Dynamics CRM
administrators to map these indexes better to the views.
Recommendation: Only create filtered indexes on most frequently executed queries or longest running queries.
Use SQL Server 2008 sparse columns.
Analysis:
The sparse columns feature in SQL 2008 is a great feature enhancement,
which reduces the space required to store data in user-specified
columns. Also,
by setting these columns as sparse, Dynamics CRM administrators
optimize the access to columns that contain mostly null values.
Recommendations:
Designating a column as sparse is useful only when the column contains
mostly null values. Consider using sparse columns when the space saved
is at least 20 percent to 40 percent, to strike a balance between saving
disk space and any CPU overhead.
Use filtered indexes and sparse columns.
Use filtered indexes and row compression.
Perform and maintain backups more efficiently by Using SQL Server 2008 backup compression.