我们发布了一个新的sp,在测试过程中我们发现,当它运行时,它会阻塞其他OLTP事务。我们发现,最初是因为新的sp导致表上的锁升级,我们减少了批处理大小的数量,并能够避免这种情况。即使在避免了锁升级之后,它仍然会阻塞传入的oltp事务。我认为它锁定了oltp事务正在更新的同一行。
我需要找到一种方法来跟踪新sp持有和释放的所有锁。我尝试过trace/xevents(锁获取/释放),但它看起来并不能捕获所有的锁,可能是因为它发生得太快了。
为了了解锁获取是什么样子,我通过执行select * from atable对其进行了测试。但它给了我不同的结果。当我们执行select *时,它不会设置一系列的页锁,所以我应该在跟踪中看到共享的页锁。但我看到的只是锁的获取和释放。
跟踪给定事务的所有锁的最佳方法是什么?
https://stackoverflow.com/questions/38407021
复制相似问题