Microsoft CRM3 - performance

Posted on 2006-07-10
Last Modified: 2013-11-24

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..

Question by:MontySR
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2

Author Comment

ID: 17077808
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

LVL 25

Expert Comment

ID: 17092921
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.


Accepted Solution

dtripp7 earned 500 total points
ID: 17095332

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


Author Comment

ID: 17096593
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

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Get to know the ins and outs of building a web-based ERP system for your enterprise. Development timeline, technology, and costs outlined.
For cloud, the “train has left the station” and in the Microsoft ERP & CRM world, that means the next generation of enterprise software from Microsoft is here: Dynamics 365 is Microsoft’s new integrated business solution that unifies CRM and ERP fun…
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

623 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question