[Webinar] Streamline your web hosting managementRegister Today

  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 602
  • Last Modified:

Microsoft CRM3 - performance


Question:  How to make the performance of Microsoft CRM really responsive?

From my performance testing on a 15 person system:

1)  A dual processor (1GHz)  SQLServer2000 is lightly loaded (ie hardly showing anything on task manager)
2)  A seperate dual processor (1GHz) IIS6 webserver is lightly loaded (ie hardly showing anything on task manager)
3) Client machines - mine is a 1.4GHz with stacks of RAM... seems to max out the CPU when doing some CRM stuff

Our network is 100MBit/s and is lightly loaded..

Will it speed things up to have super fast desktops?

Would appreciate some real life experience..

  • 2
1 Solution
MontySRAuthor Commented:
One more thing :->

It seems as though on first page load (of the day?), there can be a 4-7 second delay.. this could be a webservice start up delay?

Anyway, after that the app really does seem usable.

Any thoughts on minimum specs of Clients, Webserver, SQL server

Are you using the Outlook client?  Laptop or Desktop client?  How is the performance when just using the web URLs?  

The first hit will have a delay because the CRM backend is using the .NET platform, and the first hit "compiles" the .NET assemblies.  After that, they are cached, so future hits are faster.

The laptop client generally has poorer performance than the desktop client because extra services (like the Indexing Service) need to be running for it to function.


things i have done to speed up CRM 3.0 on our server and laptops:

- Review Administrative Tools > Services and change any unneeded services to Manual (so they do not automatically start) > stop the service

- Review items loaded in the tray and eliminate any not needed

- Reindex all the indexes in the database using the following query

1. On the Start menu, point to Programs, point to Microsoft SQL Server, and then click Query Analyzer.
2. In the Connect to SQL Server dialog box, click OK.
3. On the Query menu, click Change Database.
4. In the Select Database of <ServerName> dialog box, click the Microsoft CRM database that you want to work on, and then click OK.
5. In the Query window, type the following commands:

--Declare the variable.
DECLARE @TableName varchar(255)

--Declare the cursor.
WHERE TABLE_TYPE = 'base table'

--Open the cursor and run DBREINDEX script.
OPEN TableCursor

FETCH NEXT FROM TableCursor INTO @TableName
PRINT 'Reindexing ' + @TableName
DBCC DBREINDEX(@TableName,' ',90)
FETCH NEXT FROM TableCursor INTO @TableName

--Close and deallocate the cursor.
CLOSE TableCursor

6.  Click the Execute Query button on the toolbar, and the results show in the results pane.

Note: make sure you backup the database before running any sql query
Note: You need to update the statistics after all the indexes in a database have been defragmented or reindexed, or both

- Updating statistics on the various tables in the Microsoft CRM database enables the SQL Server Query Analyzer to choose an optimal query execution plan.  

Use the UPDATE STATISTICS command to update statistics

1. Open SQL Server Query Analyzer.
2. In the Connect to SQL Server dialog box, click OK.
3. In the Select Database of <ServerName> dialog box, click the Microsoft CRM database that you want to update, and then click OK.
4. In the Query window, type the following UPDATE STATISTICS commands:

Update Statistics QueueItemBase With FullScan
Update Statistics LeadBase With FullScan
Update Statistics ActivityBase with FullScan

5. Click the Execute Query button on the toolbar. "The command(s) completed successfully." appears in the results pane of the Query window.

Alternatively, you can also run the following script in SQL Server Query Analyzer to update the statistics and reindex every table in the database:

declare @TableName varchar(255)
declare @dbname varchar(255)
select @dbname = db_name(0)
declare @sql char (2000)
declare c cursor for
   SELECT  name FROM  sysobjects
      (xtype = 'U') AND (name NOT LIKE 'conflict%')
   ORDER BY name
   open c
   while 1=1
      fetch next from c into @TableName
      if (@@fetch_status <> 0 )
   select @sql = 'update statistics ' + @TableName + ' with fullscan'
   print @sql
   exec (@sql)
  close c
  deallocate c

This will update the statistics

- make changes to Microsoft CRM configuration

1. In Microsoft CRM, on the Home page, click the Settings tab.
2. On the Settings page, click System Customization.
3. Under Record Type Management, click Accounts.
4. In the Common Tasks area, click Set Default View.
5.  In the Default View Selector dialog box, select My Active Accounts, and then click OK.
6. When the confirmation message appears, click OK.

This will limit the number of accounts displayed.  You can also change the default number of items displayed to 25 from 50 to increase performance.  We also run the laptops in Offline mode and then synchronize which speeds up performance

There is also a Pre Cache tool but I have not tried this yet (third party development).  It is located at:


To use it, download and run:  PreCacheCRM.exe crmserver where crmserver is the name of your Microsoft CRM Webserver. (To edit the list URLs which will be cached, edit the config-file)

there are many other items that can be tuned to optimize CRM but these have helped our performance and seem fairly benign in terms of effects on the database or application - if you are interested in other optimization options, let me know

MontySRAuthor Commented:
Many thanks dtripp7 (and dstanley9)

I'm going to test these things on our dev box next week (when it gets built again).... on a longer term basis dtripp7, yes I am very interested in CRM optimization.


Featured Post

Take Control of Web Hosting For Your Clients

As a web developer or IT admin, successfully managing multiple client accounts can be challenging. In this webinar we will look at the tools provided by Media Temple and Plesk to make managing your clients’ hosting easier.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now