时间:2010-07-06 18:59:32

标签: sql sql-server concurrency locking

使用Sql Server 2005.我有一个长时间运行的更新,在我们的生产环境中可能需要大约60秒。更新不是任何显式事务的一部分,也没有任何sql提示。在更新正在运行时,对那些将要更新的行发生的其他请求有什么期望?表中将有大约600万行将被更新,其中将更新大约500,000行。

一些并发问题/问题:

1)如果在正在更新的某些行中对此表执行了另一个选择查询(带有nolock提示),该怎么办?查询是否会等到更新结束?

2)其他选择查询没有nolock提示?此查询是否必须等到更新完成后才会生效?

3)如果另一个更新查询正在对其中一行执行更新,该怎么办?这个查询是否必须等到它完成?

4)删除怎么办?

5)插入怎么办?

谢谢! 戴夫

1 个答案:

答案 0 :(得分:0)