什么是锁定锁定的事务(进程ID 116)?

时间:2018-08-24 10:08:20

标签: sql-server

我收到了来自应用程序的以下错误消息:

  

事务(进程ID 116)在Lock |通讯   用另一个进程缓冲资源,并已被选择为无效资源   锁定受害者。返回交易。

我已经阅读了博客 “ https://blog.sqlauthority.com/2007/05/16/sql-server-fix-error-1205-transaction-process-id-was-deadlocked-on-resources-with-another-process-and-has-been-chosen-as-the-deadlock-victim-rerun-the-transaction/

但是我想知道什么是(进程ID 116)以及什么错误原因?

此致

拉胡尔。

2 个答案:

答案 0 :(得分:0)

Rahul,这表示session_id。如果您熟悉Adam Machanic的sp_WhoIsActive,则可以运行它。或从http://whoisactive.com/下载。

除了您的特定问题外,此存储过程还提供了很多不错的见解,包括阻止信息和其他诊断信息。这可能有助于您检查错误原因。

答案 1 :(得分:0)

什么是(进程ID 116)?

SQL Server中的SPID是服务器进程ID 。这些进程ID本质上是SQL Server中的会话。每次应用程序连接到SQL Server时,都会创建一个新的连接(或SPID)。进程ID 116只是SPID 116

使用EXEC sp_who2查找SQL Server中的所有会话。

错误原因是什么?

  

任何两个SQL Server进程ID锁定a时发生死锁   单独的资源,并且每个资源都试图访问   资源被其他进程锁定。

修复/分辨率:

  • 尝试使用SQL Server Profiler来分析死锁。 http://msdn.microsoft.com/en-us/library/ms188246.aspx

  • 在每个调用了事务(锁定)的脚本中,请尽早开始事务并尽快提交。

  • 尝试根据脚本来设置最佳锁定时间值。请使用@@LOCK_TIMEOUT

  • 在每个脚本中设置DEADLOCK_PRIORITY值,以使优先级进程不会死锁。使用SET DEADLOCK_PRIORITY

  • 为每个TSQL查询使用查询提示。 在选择语句中使用WITH NOLOCK(不需要等待/锁定时)