Sync Framework 2.1第一次花费太多时间进行同步

时间:2017-07-17 14:08:38

标签: sql asp.net azure microsoft-sync-framework syncfx

我正在使用同步框架2.1来同步我的数据库,它只是单向的,即源数据库。我第一次同步数据库时遇到问题。我将表分成不同的组,以便在同步时减少开销。我有一个表有900k记录。在同步该表时,SyncOrchestrator.Synchronize();方法不返回任何东西。网络使用,磁盘i / o一切都很高。我等待完成同步过程2天,但它仍然没有发生任何事情。我还使用" sp_who2"检查sql db。并且该过程处于暂停模式。我也使用在线发现的一些查询,并说table_selectchanges需要花费太多时间。

我使用以下代码来同步我的数据库。

//setup the connections
var serverConn = new SqlConnection(sourceConnectionString);
var clientConn = new SqlConnection(destinationConnectionString);

// create the sync orchestrator
var syncOrchestrator = new SyncOrchestrator();

//setup providers
var localProvider = new SqlSyncProvider(scopeName, clientConn);
var remoteProvider = new SqlSyncProvider(scopeName, serverConn);

localProvider.CommandTimeout = 0;
remoteProvider.CommandTimeout = 0;

localProvider.ObjectSchema = schemaName;
remoteProvider.ObjectSchema = schemaName;

syncOrchestrator.LocalProvider = localProvider;
syncOrchestrator.RemoteProvider = remoteProvider;

// set the direction of sync session Download
syncOrchestrator.Direction = SyncDirectionOrder.Download;

// execute the synchronization process
syncOrchestrator.Synchronize();

1 个答案:

答案 0 :(得分:0)

我们遇到了这个问题。我们从数据库中删除了第一次同步的所有外键约束。这样可以将初始同步从4个小时以上减少到10分钟左右。初始同步完成后,我们替换了外键约束。