SQL Server 2008 R2分布式分区查看更新/删除问题

时间:2011-01-22 10:35:23

标签: sql-server view distributed msdtc

我有一个用于商店文章的大数据表(有超过5亿条记录),因此我在3台服务器上使用SQL Server 2008的分布式分区视图功能。

选择和插入操作正常。但删除或更新操作需要很长时间,永远不会完成。

在活动监视器的进程选项卡中,我看到更新命令的等待类型字段为“PREEMPTIVE_OLEDBOPS”。

知道问题是什么?

注意:我认为MSDTC存在问题,因为更新命令未在第二台服务器的SQL Profiler中显示。但是当检查同一服务器上的MSDTC状态时,状态列为更新(活动)。

1 个答案:

答案 0 :(得分:0)

最有可能发生的是,在应用update语句的过滤器之前,来自其他服务器的所有数据都会被转移到运行查询的计算机上。使用4部分命名时可能会发生这种情况。可能的解决方案是:

  • 确保每个表都有一个正确的“检查约束”,它定义了分区表的最小值和最大值。没有这个分区,消除不能正常工作。
  • 在另一台服务器上调用具有4部分命名的存储过程以进行更新。
  • 使用OPENQUERY()连接到其他服务器

要服务5亿条记录,您的服务器似乎已足够。使用带有滑动窗口的Table Partitioning的设置可能是处理卷的更具成本效益的方式。