Sql-Server

看不到使用 KILL WITH STATUSONLY 回滾 SPID 的進度

  • February 27, 2021

我在 SQL 2005 上有一個 SPID,它在活動監視器中顯示為“ROLLBACK”模式(因為事務日誌已填滿,而不是因為它被手動殺死)。我試圖看看它還剩下多少時間來回滾

KILL 115 WITH STATUSONLY

但它只是說“無法獲取狀態報告。程序 ID 115 的回滾操作未進行。”

我可以安全地發出“KILL 115”以便查看回滾狀態嗎?這實際上對目前正在回滾的 spid 有什麼作用嗎*?*

所以看起來你可以殺死目前正在回滾的 SPID。雖然我仍然對正在發生的事情沒有任何了解,但似乎一旦執行 KILL,您就可以通過使用 KILL WITH STATUSONLY 來獲得進度。

正如保羅所指出的,這是相當武斷的……

不,它什麼也沒做。您無法殺死正在回滾的 spid。回滾必須完成,否則數據庫在事務上不一致並成為可疑的。

從 BOL:KILL WITH STATUSONLY 僅在會話 ID 或 UOW 由於先前的 KILL 會話 ID|UOW 語句而目前正在回滾時生成報告。

在這種情況下,它會自行回滾,因此您將看不到進度。

希望這可以幫助。

引用自:https://serverfault.com/questions/58583