2

我们的 SQL Server 2008 DB(正常隔离级别)中有同时写入和读取的表。

一位同事想知道在针对该表的选择查询上使用(updlock)的查询提示是否会减少死锁,但我不太确定该怎么做。

我在想,如果正常的共享读锁会导致超时,那么在这种情况下,更新锁肯定也会导致死锁吗?!还是我错过了什么?

谢谢大家!

4

1 回答 1

0

更新锁与共享锁不兼容,因此在某些情况下基本上可以同时运行更少的 SELECT 语句。我相信这对您的问题没有帮助。

您是否考虑过打开 Read Committed Snapshot (RCSI) 数据库选项?这是您首先要在测试环境中测试的内容。它给 tempdb 带来了一些用于版本存储的开销,但由于 RSCI 的乐观锁定,您的数据库吞吐量应该会更高。

于 2014-01-06T00:43:59.473 回答