[SQL] DB Lock

 Sql Server 常常會遇到 Lock 的問題,重點是要查出哪邊卡住,並且看如何處理,以下查詢方式。

SELECT r.session_id,
  r.status AS [指令狀態],
  r.command AS [指令類型],
  r.wait_time/1000.0 AS [等待時間(秒)],
  s.client_interface_name AS [連線資料庫的驅動程式],
  s.host_name AS [電腦名稱],
  s.program_name AS [執行程式名稱],
  t.text AS [執行的SQL語法],
  r.blocking_session_id AS [被鎖定卡住的session_id]
FROM sys.dm_exec_requests r
INNER JOIN sys.dm_exec_sessions s
ON r.session_id = s.session_id
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE s.is_user_process = 1;


上圖可以看到被 session_id 79 卡住了,但重點是時間非常就,狀態是 KILLED/ROLLBACK,表示已經執行KILL了,還是卡住。這就需要重啟SQL Server了。

留言

這個網誌中的熱門文章

[C#] 無法載入檔案或組件 或其相依性的其中之一。 找到的組件資訊清單定義與組件參考不符。 (發生例外狀況於 HRESULT: 0x80131040)

[Cloud CICD] 後端篇 - .Net8 WebApi, Github Action, Azure App Service

[Cloud CICD] 前端篇 - Vue3, Github Action, Azure Static Web App