How To

Performance / Time Settings for the Dynamics CRM Provider

The Microsoft Dynamics SDK and the WEB API it references has been through many iterations and optimisations. Simego has always taken advantage of these advances and has always strived to make using Data Sync a simple but powerful experience.

In this tutorial we are going to review how to configure the Dynamics CRM Provider for optimum performance and reliability.

Performance Settings

DateTime Handling

This setting controls how Data Sync handles Dynamics CRM dates. When set to 'Local' Data Sync will convert the time and values in the source to UTC for processing on the server. When dates are read from the server they are sent back down and converted into local time for comparing with the local data sources.

When set to 'UTC' Data Sync will not convert any dates read from the source files into local time and will not convert any UTC DateTime's from the server to local DateTime.

NB: Milliseconds are ignored when comparing dates.

Page Size

The page size is the amount of rows read from CRM by Data Sync at a time. A recommended value would be 5000.

Thread Count

Data Sync can send requests to Dynamics CRM in parallel from a range of 1 to 128 at the same time. For example it can send two separate requests in parallel to insert data at one time and process the results. Using this setting can improve performance significantly when loading large sets of data. Dynamics CRM API instructions are processed by webservers which are designed to process many incoming requests at one time, hence the high performance.

The problem with having a large thread count is that there is a start up time penalty between 1 or 2 seconds for 2 to 4 threads, or 10 to 15 seconds for 64 or more threads.

Data Sync has such good performance ratings that we would recommend only using more than 1 thread for lists larger than 1000.

Timeout

When Dynamics CRM processes inserts synchronously it waits until it has completed the inserts and associated plugins, business rules and the time Data Sync is waiting can exceed 00:03:00. Very rarely will you be required to change this value and it may only be when you received a timeout exception.

Update Batch Size

Dynamics CRM can process batches of instructions in a single request. Meaning for each request you can batch up instructions for insert/update/deletes. This setting tells Data Sync how many instructions to batch up at a time.

This setting is used in combination with the Thread Count to optimize the processing. The ability for Dynamics CRM to process data is completely dependent on your desktop and server hardware, Data Sync will scale accordingly.

Some recommend settings for high performance integration can be found below.

Dynamics CRM Online Settings

Rows to be processed Thread Count Update Batch Size
100 1 1
1000 2 50
10000 8 10
100000 32/64/ 128 depending on you hardware 10

Dynamics CRM 2011 and Dynamics CRM 2013 and onwards Settings

Rows to be processed Thread Count Update Batch Size
100 1 1
1000 2 50
10000 8 250
100000 32/64/ 128 depending on you hardware 100

For further tutorials please return to the introductory page Integrate Microsoft Dynamics CRM with Data Sync.