同步框架:如何在中心辐射模型中启用批量插入/更新/删除存储过程

Posted

技术标签:

【中文标题】同步框架:如何在中心辐射模型中启用批量插入/更新/删除存储过程【英文标题】:Sync Famework: how to enable bulk insert/update/delete stored procedures in Hub and spoke model 【发布时间】:2011-10-11 01:39:32 【问题描述】:

我在带有 SQL Server 2008 和一堆 SQL Server 2008 Express 客户端的轮辐模型中使用 MS Sync 框架 2.1。

SyncAgent 使用DbServerSyncProvider 作为RemoteProvider

有没有办法在这种情况下启用批量插入/删除/更新存储过程来执行服务器端操作,而不是逐行处理数据?

谢谢

【问题讨论】:

【参考方案1】:

Sync Framework 中的 Bulk 操作仅在 v2.1 的协作/点对点数据库提供程序 (SqlSyncProvider) 中引入。

如果您想使用 DbServerSyncProvider,则必须编写自定义提供程序来启用该功能。

如果可以,我建议您改用 SqlSyncProvider。

【讨论】:

嗨 JuneT,您能否提供一些关于编写自定义提供程序以在服务器上启用批量操作的指针或代码示例?谢谢 我没有代码,但它在 SqlSyncProvider 中的工作方式是有一个 UDT(表),它是从更改数据集中填充的,这个 UDT 作为参数(TVP)传递给存储过程。如果我可能会问,您是否使用自定义 SqlExpressClientSyncProvider? afaik,DBSErverSyncProvider 没有对应的 SqlExpress 提供程序。如果我是你,我会改用 SqlSyncProvider,因为它支持开箱即用的批量更改应用程序。 但我使用的是 SyncAgent 而不是 SyncOrchastrator。对于 SyncAgent,RemoteProvider 应该是 SyncProvider(如 ServerSyncProvider)而不是 SqlSyncProvider 的后代。请指教.. 那么您是否在为您的 SqlExpress 使用自定义客户端提供程序? Sync Fx 不附带使用 Sync Agent 的 Sql Express 提供程序。恕我直言,迁移到 SyncOrchestrator/SqlSyncProvider 比自定义 DBServerSyncProvider 以使用批量操作更容易。

以上是关于同步框架:如何在中心辐射模型中启用批量插入/更新/删除存储过程的主要内容,如果未能解决你的问题,请参考以下文章

为啥批量插入/更新更快?批量更新如何工作?

如何强制 django 立即保存而不是在循环后进行批量更新

在C#中完成海量数据的批量插入和更新

MyBatis动态批量插入更新Mysql数据库的通用实现方案

PHP使用组件构建自己的PHP框架使用 Eloquent 模型进行数据库操作

PHP使用组件构建自己的PHP框架使用 Eloquent 模型进行数据库操作