我正在使用 Microsoft Sync Framework 2.1 将大量并发最终用户与中央数据库服务器同步。
环境:
- 1500 个并发客户端连接到 1 个中央数据库服务器
- Web 服务将用作服务器端 SyncProvider
- 有多个表超过 2.000.000 条记录
问题
SelectChanges SP 经常超时 (CommandTimeout = 60)。
它可能很慢的原因:
- Sync Framework 在 local_update_peer_timestamp 列上创建索引,但根本不使用它。
- 即使在重新创建统计信息后,也不会使用索引
- 索引提示会导致完整的索引扫描而不是查找操作(即使给定的时间戳远大于最大的 local_update_peer_timestamp 值)
问题 在我看来,事情正在变得非常糟糕。MS Sql Server 2008 R2 应该能够创建正确的执行计划
- 如何改进选择更改?
- 考虑到可以增长超过 8.000.000 条记录的表
- 确保 SQL Server 使用索引来构建执行计划
- 这个查询太慢还有其他潜在原因吗?