2015-07-22 86 views
1

我們如何在SQL Server 2012中自動終止或終止暫停的任務?當我運行sp_who2時,它顯示了Suspended狀態中的許多進程。如何在SQL Server 2012中自動終止或終止暫停任務?

我想知道有什麼方法可以自動終止或終止暫停的進程/任務,而不是手動執行。

我知道如何手動殺死SPID,但我想要一些可以在定義的時間後自動殺死這些任務的東西。

任何幫助將不勝感激。

+0

暫停是有效狀態。如果你得到很多暫停,你應該找出它爲什麼發生而不是殺死它們! –

回答

1

要做到這一點,你應該:

  1. 查詢一個特殊的DMV獲得處於暫停狀態psids所:

    SELECT * FROM WHERE sys.dm_exec_requests視圖狀態= '暫停'

  2. 使用例如光標放在那個結果集上,一個接一個地殺掉它們

  3. 把那個腳本放到數據庫作業中;計劃作業運行規律

但是,如果你這樣做,你應該記住,暫停查詢可以啓動資源時,他試圖使用被釋放的時候/解鎖再次運行。如果該查詢在例如存儲過程在沒有事務的情況下修改數據,那麼通過中斷這樣的過程,您的kill-automatization可能會非常糟糕。

+0

如何「使用該結果集上的光標來逐個殺死它們」? –