|
|
1
3
锁定提示只是提示。不能“强制”SQL使用特定类型的锁。
打开第二个SSMS窗口,运行以下命令:
第二次执行将被阻止。为什么?
在第三个窗口中运行锁定查询,注意有两行带有
好的,那么什么是
然后我们开始第二个查询,它还必须扫描所有的行以找到它想要的行。一开始是想抢占先机
因此,您可以看到,即使使用行锁定,您的第二个查询仍然被阻塞。
查询2出现,获取插槽0上的更新锁,查看它想要的值,获取它的独占锁,更新值, ,因为这可能也有它想要的价值。 您还将在下一个“级别”上看到“意向锁”,即页面。该操作让引擎的其余部分知道它可能希望在将来某个时候将锁升级到页面级别。但这不是一个因素。页面锁定不是问题的根源。
这种情况下的解决方案?在列上添加索引
|
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |