問題:
某日**的某個頁面突然卡死,debug提示已超過了鎖請求超時時段的原因
原因:
應該是資料庫表體積很大,處理的時候費事,因為幾乎所有資料庫操作都需要加或多或少的鎖,所以會超時。
或者是某乙個儲存過程未提交事務,導致超時。
解決方案:
首先可以使用 select * from sys.sysprocesses where blocked<>0 查查有哪些程序阻塞了。然後拿到spid,
執行dbcc inputbuffer(spid)來檢查是什麼語句造成,找到你的那個刪表程序之後,執行 kill spid,殺掉阻塞的程序。
但是注意,有些操作由於阻塞時間過長,所以就算你kill掉,也要回滾同等的時間,
這個你要注意,當出現這個情況時,可能要麼重啟服務,要麼就等了。
當你需要再次刪表的時候,建議先truncate table ,然後再drop,這樣速度快了不少。提醒要注意做好備份工作,免得發生意外,比如刪錯表名類似的表。
應該是資料庫表體積很大,處理的時候費事,因為幾乎所有資料庫操作都需要加或多或少的鎖,所以會超時。
或者是某乙個儲存過程未提交事務,導致超時。
解決方案:
首先可以使用 select * from sys.sysprocesses where blocked<>0 查查有哪些程序阻塞了。然後拿到spid,
執行dbcc inputbuffer(spid)來檢查是什麼語句造成,找到你的那個刪表程序之後,執行 kill spid,殺掉阻塞的程序。
但是注意,有些操作由於阻塞時間過長,所以就算你kill掉,也要回滾同等的時間,
這個你要注意,當出現這個情況時,可能要麼重啟服務,要麼就等了。
當你需要再次刪表的時候,建議先truncate table ,然後再drop,這樣速度快了不少。提醒要注意做好備份工作,免得發生意外,比如刪錯表名類似的表。
已超過了鎖請求超時時段的原因
應該是你的表體積很大,處理的時候費事,因為幾乎所有資料庫操作都需要加或多或少的鎖,所以會超時。首先你可以使用select from sys.sysprocesses where blocked 0查查有哪些程序阻塞了。然後拿spid,執行dbcc inputbuffer spid 來檢查是什麼語句造...
錯誤 1222 已超過了鎖請求超時時段
問題原因 重新整理當前活動將呼叫 sp msset current activity 儲存過程。在定義該儲存過程時,首先將 lock timeout 變數設定為 5000 毫秒 ms 然後,會建立兩個全域性臨時表,它們針對下面的系統表在表級別發出 ix 鎖,在鍵級別發出 x 鎖 tempdb.sys...
錯誤 1222 已超過了鎖請求超時時段
問題原因 重新整理當前活動將呼叫 sp msset current activity 儲存過程。在定義該儲存過程時,首先將 lock timeout 變數設定為 5000 毫秒 ms 然後,會建立兩個全域性臨時表,它們針對下面的系統表在表級別發出 ix 鎖,在鍵級別發出 x 鎖 tempdb.sys...