SQL SERVER 跟蹤標記總結

釋懷355發表於2013-11-01

這是從網上其他地方整理的,雖然有些我還不能用到也沒有理解,但是為了以後自己查閱方便,先整理起

控制跟蹤標記

方法一:透過以下三個命令

  • DBCC TRACEON(2203,-1) --開啟跟蹤
  • DBCC TRACEOFF(2203,1) --關閉跟蹤
  • DBCC TRACESTATUS --檢視跟蹤標記的狀態

其中,TRACEON和TRACEOFF第二個引數代表啟用標誌的範圍,1是Session Scope,-1是Global Scope,如果不指定該值,則保持預設值Session Scope。
另外,如果你希望在每次SQL Server服務啟動時透過DBCC命令控制某些Flag,則使用,這個儲存過程來指定,sp_procoption儲存過程會在SQL Server伺服器啟動時自動執行。
EXEC sp_procoption @ProcName = '' , @OptionName = ] 'startup' , @OptionValue = 'on';
最後請注意,不是所有的跟蹤標記都可以用DBCC命令啟動,比如Flag 835就只能透過啟動引數指定。

方法二:透過在SQL Server配置管理器中指定

這種方式是透過在資料庫引擎啟動項里加啟動引數設定,只有Global Scope。格式為-T#跟蹤標記1;T跟蹤標記2;T跟蹤標記3。

方法三:透過登錄檔啟動

該方法跟方法二類似

一些常用的跟蹤標記有

--1204  傳回參與死鎖的SQL SERVER相關程式之執行資料,1204是以文字格式進行
--1222  傳回參與死鎖的SQL SERVER相關程式之執行資料,1204是以XML格式儲存
--1205
--1206
--3605  要求DBCC的輸出放到SQL server ERROR LOG
--3604  將trace結果輸出到前端

對於資料庫死鎖,通常可以透過TRACE FLAG 1204、1205、1206,檢查ERRORLOG裡面的輸出,和分析SQLTRACE的執行上下文判斷死鎖問題的來由。執行下面的話可以把死鎖記錄到 Errorlog中:dbcc traceon (1204, 3605, -1)。

--1211,1224 兩種方式都是禁用鎖升級。但行為有所差別1211是無論何時都不會鎖升級,而1224在記憶體壓力大的時候會啟用鎖升級,從而避免了out-of-locks錯誤。當兩個跟蹤標記都啟用是,1211的優先順序更高。
--1200  返回加鎖資訊的整個過程,是學習加鎖過程很牛逼的標誌
DBCC TRACEON(1200,-1)
DBCC TRACEON(3604)
DBCC TRACESTATUS

--1252 顯示動DBCC CHECKFILEGROUP,DBCC CHECKTABLE。這意味著這幾個命令只能單執行緒執行,這可能會需要更多的時間,但是在某些特定情況下還是有些用處。
--3226 防止日誌記錄成功的備份。如果日誌備份過於頻繁的話,會產生大量錯誤日誌,啟用該跟蹤標記可以使得日誌備份不再被記錄到錯誤日誌。
--4199  所有KB補丁對於查詢分析器行為的修改都生效,這個命令比較危險,可能掃稱效能的下降
--260 列印關於擴充套件儲存過程動
態選擇鎖的相關資訊

--610 減少日誌產生量
--834 使用 Microsoft Windows 大頁面緩衝池分配。如果伺服器是SQL Server專用伺服器的話,值得開啟該跟蹤標記。
--835  允許SQL Server 2005和2008標準版使用"鎖定記憶體頁",和在組策略中設定的結果大同小異,但是允許在標準版中使用.
--1118 tempdb分配整個區,而不是混合區,減少SGAM頁爭搶。

--2528  禁用並行執行DBCC CHECKDB, 態連結庫的版本資訊
--444 停止auto-parameterization
--3205 預設情況下,如果磁帶驅動器支援硬體壓縮,則 DUMP 或 BACKUP 語句會使用該功能。
-- 利用此跟蹤標記,可以禁用磁帶驅動程式的硬體壓縮。
-- 本項在要與不支援壓縮的其它站點或磁帶驅動器交換磁帶時有用。
--8602 停止索引提示功能

--8722 停止join group等最最佳化提示功能
--8755 停止鎖提示功能
--8780 停止最最佳化超時配置,強制做完整的最最佳化動作
--818 檢查寫一致性,蹤標誌 818 啟用了一個記憶體中的環形緩衝區,用於跟蹤由執行 SQL Server 的計算機執行的最後 2,048 個成功寫操作(不包括排序和工作檔案 I/O)。發生 605、823 或 3448 之類的錯誤時,將傳入緩衝區的日誌序列號 (LSN) 值與最新寫入列表進行比較。如果在讀操作期間檢索到的 LSN 比在寫操作期間指定的更舊,就會在 SQL Server 錯誤日誌中記錄一條新的錯誤資訊。大部分 SQL Server 寫操作以檢查點或惰性寫入形式出現。惰性寫入是一項使用非同步 I/O 操作的後臺任務。環形緩衝區的實現是輕量的,因此對系統效能的影響可以忽略。
--1806 禁用即時檔案初始化,所有的磁碟空間請求全部使用填0初始化,可能造成在空間增長時產生阻塞。
--3502 在日誌中顯示有關checkpoint的相關資訊。
--3505 不允許自動進行checkpoint,checkpoint只能手動進行,是非常危險的一個命令
--806  在讀取過程中對頁檢查邏輯一致性,在錯誤日誌中就可以看到類似下面的資訊,該跟蹤標記會極大的降低效能!!!
2004-06-25 11:29:04.11 spid51 錯誤: 823,嚴重性: 24 日狀態: 2
2004-06-25 11:29:04.11 spid51 I/O 錯誤 (稽核失敗) 在讀取過程中檢測到的偏移量主題 SQL Server\MSSQL\data\pubs.mdf e:\Program 檔案中的 0x000000000b0000.








來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27026361/viewspace-775503/,如需轉載,請註明出處,否則將追究法律責任。

相關文章