The SQL Sharding Deployment Tool


An overview of the SQL Sharding Deployment Tool operations and parameters.

The SQL Sharding Deployment Tool is an executable that deploys and manages the xDB Collection database and can be used on its own if you want greater control over parameters, such as the number of shards to deploy. The tool must be run from a local machine. It cannot be uploaded and executed from an Azure environment.


The Sitecore Installation Framework (SIF) and the Sitecore Azure Toolkit (SAT) create two shards by default. To change the number of shards you can either re-deploy the xDB Collection database or change the JSON files used during the installation process (SIF only).


The tool is bundled with the xConnect Collection service and is available in the following web deploy packages (WDP):

Topology name

Example WDP name

Tool location

XP Single (Developer) - On Premise

Sitecore 9.1.0 rev. 001250 (OnPrem)


XP Single (Developer) - Cloud

Sitecore 9.1.0 rev. 001250 (Cloud)

XP Scaled - On Premise

Sitecore 9.1.0 rev. 001564 (OnPrem)

XP Scaled - Cloud

Sitecore 9.1.0 rev. 001564 (Cloud)


You can use the SQL Sharding Deployment Tool to:

  • Create the xDB Collection shard cluster (create). For example:

    .\Sitecore.Xdb.Collection.Database.SqlShardingDeploymentTool.exe /operation create /connectionstring "user id=sa;password=12345;data source=.\SQL2017;" /shardMapManagerDatabaseName "Sitecore.Xdb.Collection.Database.Sql.ShardMapManagerDb" /shardnumber 2  /shardnameprefix "Sitecore.Xdb.Collection.Database.Sql" /shardnamesuffix "_" /dacpac ".\Sitecore.Xdb.Collection.Database.Sql.dacpac"
  • Drop the xDB Collection shard cluster (drop). For example:

    .\Sitecore.Xdb.Collection.Database.SqlShardingDeploymentTool.exe /operation drop /connectionstring "user id=sa;password=12345;data source=.\SQL2017;" /shardMapManagerDatabaseName "Sitecore.Xdb.Collection.Database.Sql.ShardMapManagerDb"
  • Add a shard to the shard cluster (addShard). For example:

    .\Sitecore.Xdb.Collection.Database.SqlShardingDeploymentTool.exe /operation addShard /connectionstring "user id=sa;password=12345;data source=.\SQL2017;" /shardMapManagerDatabaseName "Sitecore.Xdb.Collection.Database.Sql.ShardMapManagerDb" /shardconnectionstring "user id=sa;password=12345;data source=.\SQL2017;" /shardnameprefix "Sitecore.Xdb.Collection.Database.Sql" /shardnamesuffix "_" /dacpac ".\Sitecore.Xdb.Collection.Database.Sql.dacpac"
  • Remove a shard from the shard cluster (deleteShard). For example:

    .\Sitecore.Xdb.Collection.Database.SqlShardingDeploymentTool.exe /operation deleteShard /connectionstring "user id=sa;password=12345;data source=.\SQL2017;" /shardMapManagerDatabaseName "Sitecore.Xdb.Collection.Database.Sql.ShardMapManagerDb" /shardConnectionString "user id=sa;password=12345;data source=.\SQL2017;" /shardDatabaseName "Sitecore.Xdb.Collection.Database.Sql2_"
  • Print shard map key ranges (printMapping). For example:

    .\Sitecore.Xdb.Collection.Database.SqlShardingDeploymentTool.exe /operation printMapping /connectionstring "user id=sa;password=12345;data source=.\SQL2017;" /shardMapManagerDatabaseName "Sitecore.Xdb.Collection.Database.Sql.ShardMapManagerDb"


Using the SQL Sharding Deployment Tool to add or remove shards does not automatically split and merge existing data. You use the SQL Sharding Deployment Tool as part of performing the split/merge operation.


The following table describes the parameters used by the SQL Sharding Deployment Tool. Different operations accept a specific set of parameters in a specific order.

Parameter name


Values / examples


Specifies which operation to perform.

  • create

  • drop

  • addShard

  • deleteShard

  • printMapping

  • registerSchema


SQL Server credentials used to create the database.

"user id=sa;password=SamplePassword;data source=.\SQL2016"


Azure SQL DTU-based service tiers . This value is only used if you are deploying to Azure SQL.

  • Basic

  • Standard

  • Premium


The name of the shard map manager database.

Example: Sample_ShardMapManagerDb


The number of shards to create. Count starts at 0.



Format is {Prefix}{Number}{Suffix}.

Example: Sample.Shard


Format is {Prefix}{Number}{Suffix}. Suffix can be left blank.

Example: _ABC


Path to DACPAC file. By default, DACPAC files are in the same folder as the tool.

  • Sitecore.Xdb.Collection.Database.Sql.dacpac (on-premise)

  • Sitecore.Xdb.Collection.Database.Sql.Azure.dacpac (Azure)


Path to log file. If no log file is specified, output is written to console.


Used by the /deleteShard operation.


Used by the /deleteShard operation.


The name of the registered elastic pool to deploy cluster databases in. T

he argument is SQL Azure specific, and not required.

Can be used with create and addShard.