我们正在开发一种依赖Microsoft Sync Framework的产品,以保持客户端应用程序和服务器上的数据同步。我们注意到的是,当同步大约16个表和~2200个记录时,大约需要4分钟,这是不可接受的。
使用SQL Server Profiler,我们发现它使用sp_executesql来执行查询。在没有sp_executesql的情况下运行时,特定查询在< 1s中运行,但是它需要超过10秒。
所以问题是:我们做错了什么,我们能做些什么来加快它。
答案 0 :(得分:2)
sp_executesql正在使用动态sql。每一行都在进行单独处理。
4分钟似乎相当长,您应该查看16个表的设计并检查它们的性能。尝试使用执行计划来查看瓶颈可能发生的位置。
查看涵盖基础知识的链接:
尝试向下滚动到文章的底部,其中有SQL Management Studio中实际图形界面的屏幕截图。本文有一些无聊的部分,但您至少可以看到图形执行计划及其好处。
答案 1 :(得分:0)
Sync Framework 2.0的“新功能”部分列出了MSDN上的效果改进。
绩效改进
此版本中的新数据库提供程序 已经过大量的彻底测试 扩展单个场景 服务器支持数千个客户端 有数百个并发 同步操作。这个 测试导致了大量的 内部绩效改进 启用Sync Framework数据库 提供者和其他提供者一样 微软等远程技术 提供数据访问(RDA) 广泛的能力 与端到端的解决方案竞争 合并复制。