有人可以向我解释为什么更新表列只使用八个可能的处理器之一?我认为这样的过程可以很容易地细分为所有可用的处理器吗?
查询就像这样:
update
My_Table
set
column2 = 'Atlantic'
from
My_Table
where
column2 != 'Ocean'
有问题的表约为6GB。查询期间的IO Deltas大约是7MB / s,这是非常低的。
服务器是远程计算机,我是唯一的用户。并行已启用。
我没有使用我可能应该使用的索引。
解决方案可能是不更新并选择带有case语句的表副本。复制完成后,可以删除旧表。当然,这只有在有足够的磁盘空间时才可行。
答案 0 :(得分:0)
我的第一个问题是你有TRIGGER,因为这通常是最小的原因。 你有如此大量的数据,所以可以查看以下几点:
索引更新
外键查找
外键级联
索引视图
计算列
检查约束
锁
快照隔离
文件增长