Mar*_*own 10 sql-server deadlock locking
我有两个存储过程在系统负载时会死锁。Proc A 正在从一个表中选择,而 Proc B 正在插入同一个表中。锁图显示 Proc A 有一个 S 模式页锁,而 Proc B 想要一个 IX 模式锁,但是 Proc A 正在等待另一个页面的 S 模式页锁,而 Proc B 已经有一个 IX 模式页锁.
显然,这可以通过确保两个查询以相同的顺序锁定表中的页面来解决,但我不知道如何做到这一点。
我的问题是:在执行 INSERT 和 SELECT 时,SQL Server 如何确定锁定页面的顺序以及如何修改此行为?
SQL Server 如何确定在执行 INSERT 和 SELECT 时锁定页面的顺序
未确定 - 由内部处理完成并取决于查询优化器输出。
以及如何改变这种行为?
控制你的隔离。如果为了写而读,请告诉 SQL Server 立即获取写锁。点关闭。
归档时间: |
|
查看次数: |
1374 次 |
最近记录: |