![]() |
1
6
你确定选择 拥有 U锁?
如您所知,U和X锁(以及可序列化的S锁)在
交易
不是声明。因此,对于从先前执行的语句发出写操作以拥有U锁的事务来说,这是完全可能的。为什么它拥有U形锁,而不是X形锁(即它拥有U形锁
没有升级到X
)这本身就是一个谜,但我可以预见这可能发生的两种方式。
典型的select与update死锁发生在索引访问顺序场景中,如 Read/Write deadlock . 我相信你是认真读过死锁图的,但是如果不是问得太多,你能分享一下吗? 哦,顺便说一句,您考虑过读提交快照吗? |
![]() |
2
1
select语句不会创建共享锁。尝试使用nolock提示选择。它可以解决这个问题。 例如select*from table(nolock) |
![]() |
3
0
可能是用updlock提示调用了select? 无论如何,您可以使用快照隔离并消除问题吗? |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 7 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 8 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 8 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 8 月前 |