共用方式為


MSSQLSERVER_1205

詳細資料

產品名稱

SQL Server

產品版本

10.50

產品組建編號

10.50.0000.00

事件識別碼

1205

事件來源

MSSQLSERVER

元件

SQLEngine

符號名稱

LK_VICTIM

訊息文字

交易 (處理序識別碼 %d) 在 %.*ls 資源上被另一個處理序鎖死,並已被選為死結的犠牲者。請重新執行該交易。

說明

個別交易上的資源存取順序發生衝突,因而產生死結。例如:

  • Transaction1 更新 Table1.Row1,而 Transaction2 則更新 Table2.Row2

  • Transaction1 嘗試更新 Table2.Row2,但是卻因為 Transaction2 尚未獲得認可而遭到封鎖。

  • 現在 Transaction2 嘗試更新 Table1.Row1,但是因為 Transaction1 尚未獲得認可而遭到封鎖。

  • 由於 Transaction1 正在等候 Transaction2 完成執行,而同時 Transaction2 也在等候 Transaction1 執行完成,因此發生死結。

系統將會偵測到這個死結,並選擇其中一個交易做為「犠牲者」,然後發出這則訊息,同時回復犠牲者的交易。如需有關死結的詳細資訊,請參閱<死結>。

使用者動作

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

若要防止或避免發生死結,請考慮讓所有的交易都以相同的順序來存取資料列 (先存取 Table1,然後存取 Table2);如此,雖然可能會發生封鎖,但是不會發生死結。如需有關所要採取動作的詳細資訊,請參閱<偵測與結束死結>。