全部產品
Search
文件中心

Database Autonomy Service:死結

更新時間:May 26, 2026

資料庫自治服務DASRDS SQL Server提供鎖最佳化功能,您可以通過該功能查看資料庫執行個體中的死結及其詳細資料。

前提條件

  • 當前不支援RDS SQL Server 2008 R2雲端硬碟版。

  • 所在地區為:

    華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華南1(深圳)、華南2(河源)、華南3(廣州)、西南1(成都)、中國(香港)、新加坡、阿聯酋(杜拜)。

背景資訊

由於事務的特殊機制,一個事務對特定資源進行修改時會鎖定該資源,以防其他並發事務對同一資源進行修改,從而保證資料一致性。

死結通常由多個事務互相競爭資源引發,例如事務A鎖定資源A並嘗試修改資源B,而事務B鎖定資源B並嘗試修改資源A,導致雙方相互等待對方釋放資源,最終導致死結,此時系統會自動終止成本較低的SQL語句會話(即受害者會話),使無法完成該會話既定任務。如下圖所示:

死結

死結類型

DeadLock統計頁面中包含如下5種死結類型

  • KeyDeadlock

  • ObjectDeadLock

  • RIDDeadlock

  • PageDeadlock

  • ComplieDeadlock

鎖模式

事務訪問資源時,會根據訪問類型使用不同的鎖模式(LockMode),包括以下幾種:

  • 共用鎖定(S):保證目標資源在鎖定期間只能被讀取,不能被修改。

  • 更新鎖定(U):預定對目標資源施加排它鎖(X),在資源被當前事務施加排它鎖之前,保證該資源不會被其他事務修改。

  • 排它鎖(X):保證目標資源在鎖定期間無法被其他事務訪問。

操作步驟

  1. 登入DAS控制台

  2. 在左側導覽列中,單擊智能營運中心 > 執行個體監控

  3. 找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。

  4. 在左側導覽列中,單擊鎖最佳化 > DeadLock

  5. DeadLock頁,查看資料庫執行個體中的死結及其詳細資料。

頁面介紹

  • 死結數量概覽統計時段包括近一天近一周近兩周近一個月

    可分時段查看近期產生的死結數量。

  • 死結變化趨勢死結變化趨勢

    展示某個時間段內發生的死結類型。您可以執行如下操作:

    • 選擇起始日期結束日期,單擊尋找顯示指定時間段的死結資訊。

      說明

      指定的時間間隔不能超過30天。

    • 單擊近一天近一周近一月快捷查詢所選時間段的死結資訊。

    • 將滑鼠移動到特定的時間點,可查詢該時間點內發生的死結類型和數量。

    • 單擊趨勢圖右上方的表徵圖表徵圖,切換趨勢圖的顯示樣式或下載當前趨勢圖。

  • 死結詳細資料

    單擊左邊的加號表徵圖可展示相互鎖定的會話詳情。包含如下內容:

    • LastTranStarted:事務開啟的時間。

    • SPID:開啟事務的會話ID。

    • IsVictim:該會話是否已被終止(kill)。

      說明

      SQL Server解決死結的方法是通過一個內部線程定期檢測系統死結,發現死結後,在引發死結的會話之間終止成本相對較低的會話。例如:SELECT語句的成本比UPDATE更低,系統便會優先終止使用SELECT的會話。

    • LogUsed:會話已經產生的日誌大小。單位:位元組。

    • LockMode:鎖模式。更多資訊,請參見鎖模式

    • WaitResourceDesc:當前事務等待中的資源詳情。

    • ObjectOwned:已經被鎖住的對象。

    • ObjectRequested:當前事務請求加鎖的對象。

    • WaitResource:當前事務等待中的資源。

    • HostName:當前事務的主機名稱。

    • LoginName:當前事務的帳號名稱。

    • Status:當前事務的狀態。

    • ClientApp:當前事務所使用的用戶端名稱。

    • SQLText:SQL語句詳情。

      說明

      單擊該SQL語句可開啟SQL語句視窗,單擊點擊複製可快速複製SQL語句,方便排查或回溯有問題SQL。

    單擊任意一行內容可在下方展示對應的死結關係圖。

  • 死結關系圖死結關係圖

    展示發生死結的會話之間的相互關係以及被鎖定資源的詳細資料。您可以單擊點擊下載按鈕下載XDL檔案,該檔案中記錄了對應當前死結的詳細內容,可通過SQL Server Management Studio(SSMS)用戶端開啟並查看。