我正在帮助解决使用SQL Server 2005的.NET应用程序中的一些死锁问题.我从下面的跟踪中获取了XML数据.
让我感到困惑的是,PK_Exp_Experience_PriorFirm
当提交事务隔离级别时,RangeX-X锁定.
我读过的所有内容都表明您只获得了使用事务隔离级别"可序列化"的键范围锁定.到目前为止,我在我们的应用程序中找不到任何位置,我们将隔离级别设置为read committed之外的任何其他位置,下面的XML也表明我们正在使用read committed.
但是如果我们使用read-committed,我不明白跟踪如何显示有一个键范围锁定.有没有人有关于如何发生这种情况的想法?
UPDATE Exp_Experience_PriorFirm SET RelatedGuid = @newGuid WHERE RelatedGuid = @oldGuid sp_executesql EXEC sp_executesql @sql, N'@oldGuid uniqueidentifier, @newGuid uniqueidentifier', @oldGuid, @newGuid EXEC Contact_MergeRelationships @oldGuid, @newGuid, 'Contact_Company', @excludedTableNames Proc [Database Id = 120 Object Id = 698446258] DELETE FROM Contact WHERE GUID = @Guid; Proc [Database Id = 120 Object Id = 410445232]
Amy T.. 6
PK_Exp_Experience_PriorFirm上的RangeX-X锁定被视为级联删除的一部分.
对于某些操作(如级联删除),SQL Server会自动将隔离级别升级为可序列化.
这里将对此进行更详细的描述:更新/删除级联RI上的Conor与隔离级别升级.
PK_Exp_Experience_PriorFirm上的RangeX-X锁定被视为级联删除的一部分.
对于某些操作(如级联删除),SQL Server会自动将隔离级别升级为可序列化.
这里将对此进行更详细的描述:更新/删除级联RI上的Conor与隔离级别升级.