我是SQL服务器的新手,像死锁问题一样。我读过关于它的文章。我想了解以下几件事:MS SQL Server中的IsolationLevel,锁定模式,死锁和sp_getapplock
- SQL服务器使用适当Lock Mode取决于我,而开始交易设置IsolationLevel。如果这种理解是正确的,那么sp_getapplock的目的是什么?
- 我正在运行SQL死锁问题。我的ASP.NET应用程序运行在不同服务器上的几个实例访问同一个数据库。如果我对事务使用适当的IsolationLevel,是否仍然需要使用sp_getapplock获取SQL锁定?
(我知道更合适的解决方案是,以确定有问题的交易,并解决这些问题。但仍然是更高的理论问题。)
感谢您的回答。数据库如此庞大而复杂,以至于检测导致死锁的资源本身就是一项挑战。无论如何,我已经问过死锁图。 – Learner
我的旧代码,往往问题在下一个连续:'tran tran;选择xxxx;更新xxxx;提交“ - 如果xxxx包含用于选择和更新的相同记录,则快速出现死锁。如果你在你的'select'语句中加上'(updlock)'提示,许多(不是全部)问题就会消失。 – Arvo