0

在我工作的一个 asp.net 应用程序中,我使用 try-catch 编写了数据访问层,在每次调用数据库时捕获并在流行语中记录发生的任何错误。我还编写了大部分存储过程代码,所有的选择语句都使用了 nolock 提示。其中一些选择语句会出现大量但并不总是出现死锁错误,例如以下“事务(进程 ID 86)在锁定资源上与另一个进程死锁,并已被选为死锁受害者。重新运行事务。” 我需要知道一个进程来发现错误消息所指的其他进程是什么。任何帮助表示赞赏 - 谢谢。

4

2 回答 2

0

我强烈建议阅读有关 SqlServer-Online 文档的死锁文章。您可以检测 SqlServer 本身的死锁,如果您有 DBA,请使用它们。

下面的文章很少,它推荐了如何检测、解决和避免死锁。

http://technet.microsoft.com/en-us/library/ms177433(v=sql.105).aspx

于 2013-09-27T14:39:55.217 回答
0

您需要让您的 DBA 开启 DBCC TRACESTATUS (1222, -1)。这将在 sql server 错误日志中为您提供信息。请参阅下面的链接。

http://www.mssqltips.com/sqlservertip/2130/finding-sql-server-deadlocks-using-trace-flag-1222/

于 2013-09-27T14:35:33.743 回答