Performance tips


Guide to optimizing the performance of data migration from Sitecore 8.2 to later versions of Sitecore.

This section contains recommendations on how to speed up the process of migrating data from Sitecore 8.2 (MongoDB based xDB) to Sitecore 9.x – 10.0 (xConnect).

Add MongoDB indexes

Add the following indexes to the MongoDB database in order to increase how fast data can be read from MongoDB.

  • db.getCollection('Devices').createIndex({LastKnownContactId:1})

  • db.getCollection('Interactions').createIndex({ContactId:1})

For more information on indexes in MongoDB, please refer to the official MongoDB documentation.

Use multithreading

You can run migration in a number of parallel threads to speed up processing.

It is recommended that you use at least 4 threads. To determine the optimal number of threads, you should measure performance on the target system. The optimal number of threads depends on the number of CPUs on the content management instance running the migration process, and on the performance of the xConnect database.


A high number of threads can slow down processing, if your xConnect installation is unable to handle a large number of requests in parallel.

To adjust the number of parallel threads:

  1. In the content editor, navigate to <tenant>/Pipelines/MongoDB Contacts to xConnect Migration Pipelines/Read Contacts from MongoDB Pipeline/Iterate MongoDB Contacts and Run Pipelines.

    max thread count
  2. In the Max Thread Count field, enter the number of threads you want to use.

Change the data retention policy of the xConnect collection database

By default, the xConnect collection database is set to retain 5 days of data. SQL Server uses a hidden database to store this data. This hidden database continues to grow, which puts more and more load on SQL Server.

There are a number of options you can use to optimize this data retention. They are described here.

Change IIS application pool settings

The IIS application pool that is used on your content management server has some settings that can influence performance. To improve performance, you can:

  • prevent IIS from timing out requests

  • prevent the IIS application pool from automatically recycling.