Breaking news from around the world
Get the Bing + MSN extension
Now Available in Community - MBAS 2019 Presentation Videos
Catch the most popular sessions on demand and learn how Dynamics 365, Power BI, PowerApps, Microsoft Flow, and Excel are powering major transformations around the globe. | View Gallery
2019 release wave 2 Discover the latest updates to Dynamics 365Release overview guides and videos Release Plan | Early Access Availability
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants. | Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements | ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance TechTalks | Customer Engagement TechTalks | Talent TechTalks | Upcoming TechTalks
Here are the consolidated list of the CRM 2011 Performance Improvements and Best Practices.
Performance Tuning Best Practice
Front End WEB Servers
Configuring HTTP Compression of WCF traffic
By using bandwidth more effectively, enabling compression can provide faster transmission times between IIS and compression-enabled browsers. If your network bandwidth is restricted, as it is, for example, with mobile phones, compression can improve performance. IIS can be configured to compress only static files, only dynamic application responses, or both static files and dynamic application responses.
Considerations for increasing the ephemeral TCP port limit.
Add MaxUserPort (value 65534) and TcpTimedWaitDelay (value 30)
to the registry under
In some situations, you may want to reserve a range of ports so that a program or process that requests a random port will not be assigned a port that is in the reserved range. When you reserve a range of ports, only a program or process that specifically requests a port that is in the reserved range can use the port. In rare cases there may be no free ephemeral ports available, which will cause the connection open to fail or time out. While this would be unlikely to occur on a computer running in the client tier, it is more likely to affect a computer in the application tier that is creating connections for every client request that is processed.
Configuring the EnableRetrieveMultipleOptimization setting
When you perform RetrieveMultiple queries on large datasets in Microsoft Dynamics CRM 2011, such as pulling together a CRM Online view, you may experience slow performance. This problem occurs because large datasets cache the Microsoft SQL query plans for the RetrieveMultiple queries. The RetrieveMultiple optimization for the basic depth is required for the "local depth" read privilege and for the "deep depth" read privilege. Set this to a value of 2 to help improve overall grid load performance.
Configure the Optimized values for SQL OLEDBTimeout
The OLEDBTimeout value controls the SQL time-out value that is used for a single SQL query. The increased OLEDBTimeout value is useful when the SQL server is overloaded. Additionally, the query takes a longer time to process. The ExtendedTimeout value controls the ASP.NET time-out value that is used for import requests. The time-out value must be larger than the time for finishing the whole import process. The increased ExtendedTimeout value is useful when the import process takes a long time.
Schedule the CRM 2011 Maintenance Jobs
during the Non Business hours.
By default CRM 2011 creates 6 maintenance jobs which are scheduled to run daily. The CRM users may notice slowness or timeouts if the jobs are running while they are working in CRM. It is recommended to reschedule the jobs to a time when there there will be a limited number of users in the system to avoid impact to the users.
Back End SQL
Set degree of parallelism from 0 to 1.
This disables the parallel execution of the simultaneous operations on the SQL server.
Parallelism is the ability of SQL Server to use multiple processors to execute a single query if it determines that doing so will be the most efficient way to execute the query.
Turn Read Committed Snapshot On.
READ COMMITTED isolation to minimize potential locking contention while protecting transactions from “dirty” reads of uncommitted data modifications. With dirty reads, data within the current transaction can potentially be modified by other transactions between individual statements, resulting in non-repeatable reads or phantom data.
Configure the TempDB Drive and Increasing the number of TempDB data files using the SQL best practice.
Lesser pagelatch_up locks on the tempdb have improvements on the “blocking".creating additional tempdb files which are equally sized, SQL Server will automatically balance incoming requests across the multiple files. Since each file maintains its own PFS, GAM, and SGAM information, the contention will be eliminated
Validate the Max/Min Memory Configuration.
Efficient usage of Memory resources between SQL Services and Operating System.
Controlling Principal Object Access table growth
Principal Object Access table in CRM contains data about the users and their roles in CRM. This table has a tendency to grow which risks the performance of users in CRM having differet roles. It is recommended to clean the POA table periodically. UR6 is the best matched with POA cleaning.
Re-organizing indexes and De-fragmenting indexes
Improves the table performance when the data is retrieved. Remove the additional space from the drives where index are fragmented. We are targeting the top 10 tables and then the whole DB
Improves the table performance when the data is retrieved. We are targeting the top 10 tables and then the whole DB
Optimizing Microsoft .NET ThreadPool Settings
The Machine.config file modified to accommodate a specific environment. However, if each .aspx page makes a Web service call to a single IP address, it is recommended to adjust these parameters as shown below. Parameter Value
12*n (where n is the number of CPUs)
50 (manually add this parameter and value to the file)
Slow Performance or Large Database File in
MS CRM AsyncOperationBase
CRM records whatever it does and it is stored in the AsynOperationbase table, when the database grows so this table too. It directly impacts the performance of CRM if the data is not cleaned up periodically from this table.
Weekly Statistics Job on Query Optimization for most used table or most searched indexes in SQL
Up-to-date statistics help ensure that the most appropriate index is chosen to obtain the underlying data.Currently, we run the statistics updates every week. The change is required to create a new job and run it daily in order to ensure that the most appropriate index is chosen to obtain the underlying data on the Blocking table. They also help us ensure that the correct index access mechanism is chosen
SQL Jobs realignment to fit into the best time and help in connecting the dots for improvement plan
There may be times when your system is processing little data. It may be possible to reschedule some jobs to run when nothing else is happening in the system, thus reducing the opportunity for blocking.Modified the times for the SQL Jobs ensuring they do not conflict with each other. Except the replication.
Controlling Principal Object Access table growth - https://support.microsoft.com/en-us/kb/2664150
Slow Performance or Large Database File in CRM ASyncOperationBase - https://support.microsoft.com/en-in/kb/968520
Schedule the CRM 2011 Maintenance Jobs - https://blogs.msdn.microsoft.com/crminthefield/2012/04/26/avoid-performance-issues-by-rescheduling-crm-2011-maintenance-jobs/
Configure the Optimized values for SQL OLEDBTimeout and ExtendedTimeout - https://support.microsoft.com/en-in/kb/918609
Considerations for increasing the ephemeral TCP port limit - https://technet.microsoft.com/en-us/library/cc938196.aspx, https://technet.microsoft.com/en-us/library/cc938217.aspx
Configuring the EnableRetrieveMultipleOptimization setting - https://support.microsoft.com/en-in/kb/2535245
Business Applications communities