2016-08-08 82 views
0

我想設置僵局標誌在SQL 2008 R2,當我運行此命令DBCC TRACEON(1222)未設置狀態標誌

DBCC TRACEON (1222) 

我沒有得到任何錯誤,它說,它完成DBCC TRACEON (1222),但是當我檢查未設置標誌的狀態

  • DBCC TRACESTATUS (1222)

是否有另一種方法來設置?爲什麼不能這樣工作?

謝謝!

+1

如你在2008年,你可能不需要這個反正。您可以查看默認的system_health擴展事件會話http://dba.stackexchange.com/questions/10644/deadlock-error-isnt-returning-the-deadlock-sql/10646#10646 –

+0

@MartinSmith:感謝您的鏈接,有一點像這樣陳述..「或者如果緩衝區已經在此期間循環了。」..我們知道緩衝區的再循環時間,我們可以每20分鐘左右記錄一下這個跟蹤標誌輸出到磁盤,這樣我們保證即使在繁忙的系統中也能獲得數據,無論緩衝區再循環時間如何 – TheGameiswar

+0

@TheGameiswar - 它使用內存環形緩衝區,最大內存爲4MB。希望緩衝區不會循環並重寫舊的事件,因爲它只記錄死鎖,高嚴重性錯誤或長時間鎖定和鎖定等待,所以這些都應該是例外。沒有什麼能夠阻止人們爲死鎖圖設置擴展事件追蹤並使用諸如文件這樣的持久目標。 –

回答

1
dbcc traceon('someflag') 

集跟蹤標誌在會話級,一旦會話被關閉,跟蹤標記將不再活性

要設置跟蹤標誌全局使用該命令..

dbcc traceon('someflag',-1) 

要查看那些跟蹤這些設置在全球使用此..

dbcc tracestatus(-1) 

跟蹤標誌將被清除一旦SQLServer是restarted.You需要的SQLserver啓動創建它們,如果你希望他們能夠堅持

enter image description here

+0

我確實運行了-1參數,它仍然沒有設置:( –

+0

我不能repro這個,你能分享你的sql版本 – TheGameiswar