MSSQLSERVER_1205

適用範圍: 是SQL Server (所有支援的版本)

詳細資料

屬性
產品名稱 SQL Server
事件識別碼 1205
事件來源 MSSQLSERVER
元件 SQLEngine
符號名稱 LK_VICTIM
訊息文字 交易 (處理序識別碼 %d) 在 %.*ls 資源上被另一個處理序鎖死,並已被選為死結的犧牲者。 請重新執行該交易。

說明

在個別交易上以衝突的順序存取資源,造成 鎖死。 例如:

  • Transaction1 updates Table1. Row1,while Transaction2 updates Table2. Row2
  • Transaction1 嘗試更新 Table2 Row2 ,但因為 Transaction2 尚未認可,所以遭到封鎖
  • Transaction2 現在會嘗試更新 Table1. Row1 ,但因為 Transaction1 尚未認可而遭到封鎖
  • 由於 Transaction1 正在等候 Transaction2 完成執行,而同時 Transaction2 也在等候 Transaction1 執行完成,因此發生死結。

系統會偵測到此鎖死,並選擇其中一個與「犧牲者」相關的交易。 然後,它會發出此錯誤訊息,並回復受害者的交易。 如需詳細資訊,請參閱 鎖死

使用者動作

重新執行交易。 您也可以修訂應用程式以避免死結。 您可以重試系統選擇做為犠牲者的交易,而且該交易可能會成功 (依據同時執行的作業而定)。

若要避免或避免發生鎖死,請考慮讓所有交易都以相同的順序存取資料列 (Table1,然後 Table2) 。 如此一來,雖然可能發生封鎖,但會避免鎖死。

如需詳細資訊,請參閱 處理鎖死 和將 鎖死最小化