[MSSQL] DB Lock


Posted by mike-hsieh on 2024-07-08

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了。

若是一般的執行,應該Kill就可以了。

參考資料:
https://www.uuu.com.tw/Public/content/article/20/20201207.htm


#sql server #Lock #session #kill #rollback







Related Posts

2023 IT鐵人賽完賽心得

2023 IT鐵人賽完賽心得

[Node.js] 集群

[Node.js] 集群

1. Entity Framework - DBFirst

1. Entity Framework - DBFirst


Comments