2. 執行 sp_lock 3. 執行 sp_lock 4. 結合 2, 3 分析原因。 5. 使用 dbcc inputbuffer( 如果要自動刪除阻塞的進程, 那么寫一個 job 定期查詢 sp_who , 將 blk 列值不為 0 的記錄找出來, 用 kill 注意, 一般不要輕易殺進程, 如果你的程序沒有寫好, 可能會導致不完整的數據。 例如, 在寫訂單主表和明細表的處理中, 沒有使用事務, 當主表數據插入完成, 準備插入明細表數據時, 產生阻塞, 被你的監控程序 kill 掉的話, 就導致數據庫中有不完整的訂單(只有主表, 沒有明細數據)。 另外, 如果你的程序的錯誤處理沒有控制好, 則這樣殺進程也容易導致程序崩潰, 丟失等。 另外, 查詢進程相關的信息也可以直接查詢 master.dbo.sysPRocesses, 這里包含完整的信息, 你可以通過 blocked 列看是否有阻塞發生, 也可以看諸如登錄的用戶, 客戶端, 使用此進程的前端applicationame等信息。
新聞熱點
疑難解答