追蹤旗標 (Transact-SQL)
追蹤旗標用來暫時設定特定伺服器性質,或關閉特定行為。 例如,如果在啟動 SQL Server 執行個體時,設定追蹤旗標 3205,就會停用磁帶機的硬體壓縮。 追蹤旗標經常用來診斷效能問題,或偵錯預存程序或複雜電腦系統。
下表列出並描述 SQL Server 中可用的追蹤旗標。
注意
在未來的 SQL Server 版本中,不一定支援追蹤旗標行為。
適用於:SQL Server (SQL Server 2008 到目前的版本)。 |
追蹤旗標 |
描述 |
---|---|
260 |
列印擴充預存程序動態連結程式庫 (DLL) 的版本控制相關資訊。 如需有關 __GetXpVersion() 的詳細資訊,請參閱<建立擴充預存程序>。 範圍:全域或工作階段 |
634 |
停用背景資料行存放區壓縮工作。 SQL Server 會針對含有未壓縮資料的資料行存放區索引資料列群組,定期執行背景壓縮工作,一次壓縮一個資料列群組。 壓縮資料行存放區可提升查詢效能,但同時也會耗用系統資源。 您可以手動控制資料行存放區的壓縮時間,方法是在您選擇的時間,停用追蹤旗標為 634 的背景壓縮工作,然後明確地叫用 ALTER INDEX REORGANIZE 或 ALTER INDEX REBUILD。 範圍:只有全域 |
1118 |
移除伺服器上大部分的單一頁面配置,以減少 SGAM 頁面的競爭情況。 建立新物件時,根據預設,前八頁會從不同的範圍 (混合範圍) 進行配置。 之後若需要更多頁面時,將會從相同的範圍 (統一範圍) 加以配置。 SGAM 頁面可用以追蹤這些混合範圍,因此若出現多個混合頁面配置,它會很快地成為瓶頸。 這個追蹤旗標會在建立新物件時,從相同的範圍配置所有八個頁面,進而將掃描 SGAM 頁面的需求降到最低。 範圍:只有全域 |
1204 |
傳回參與死結之鎖定的資源和類型,以及目前受影響的命令。 範圍:只有全域 |
1211 |
停用以記憶體壓力或鎖定個數為基礎的鎖定擴大。 SQL Server Database Engine 不會將資料列或頁面鎖定擴大到資料表鎖定。 使用這個追蹤旗標可能產生大量鎖定。 這可能會降低 Database Engine 的效能,或因記憶體不足而造成 1204 錯誤 (無法配置鎖定資源) 如果同時設定了追蹤旗標 1211 和 1224,將會優先採用 1211。 但是,由於追蹤旗標 1211 會在每一個情況下防止鎖定擴大 (即使是在記憶體壓力下),所以建議您最好使用 1224。 如此可避免在使用許多鎖定時,發生「鎖定不足」錯誤。 範圍:全域或工作階段 |
1222 |
以不符合任何 XSD 結構描述的 XML 格式來傳回參與死結之鎖定的資源和類型,以及目前受影響的命令。 範圍:只有全域 |
1224 |
停用以鎖定個數為基礎的鎖定擴大。 不過,記憶體壓力仍然可以啟動鎖定擴大。 如果鎖定物件使用的記憶體數量超出下列其中一個條件,Database Engine 就會將資料列或頁面鎖定擴大至資料表 (或資料分割) 鎖定:
如果同時設定了追蹤旗標 1211 和 1224,將會優先採用 1211。 但是,由於追蹤旗標 1211 會在每一個情況下防止鎖定擴大 (即使是在記憶體壓力下),所以建議您最好使用 1224。 如此可避免在使用許多鎖定時,發生「鎖定不足」錯誤。 注意 您也可以使用 ALTER TABLE 陳述式的 LOCK_ESCALATION 選項來控制鎖定擴大到資料表或 HoBT 層級的資料粒度。 範圍:全域或工作階段 |
1448 |
讓複寫記錄讀取器向前移動,即使非同步次要尚未認可收到變更也一樣。 即使這個追蹤旗標已啟用,記錄讀取器一定會等候同步次要。 記錄讀取器不會超過同步次要的最小認可。 這個追蹤旗標會套用至 SQL Server 執行個體,而不只可用性群組、可用性資料庫或記錄讀取器執行個體。 立即生效,不必重新啟動。 您可以事先或在非同步次要失敗時啟動這個追蹤旗標。 |
2528 |
利用 DBCC CHECKDB、DBCC CHECKFILEGROUP 和 DBCC CHECKTABLE 來停用物件的平行檢查。 依預設,查詢處理器會自動判斷平行處理原則的程度。 最大平行處理原則程度的設定方式與平行查詢相同。 如需詳細資訊,請參閱<設定 max degree of parallelism 伺服器組態選項>。 平行 DBCC 通常應該保留啟用狀態。 對 DBCC CHECKDB 而言,查詢處理器會在檢查每份資料表或資料表批次的情況下,重新評估和自動調整平行處理原則。 有時候,可能會在伺服器幾乎閒置的情況下開始檢查。 如果管理員知道在檢查完成之前,負載會增加,他可能會想手動降低或停用平行處理原則。 停用 DBCC 的平行檢查可能會造成 DBCC 花上更長時間來完成,而且如果在啟用 TABLOCK 功能且平行處理原則設為關閉的情況下執行 DBCC,資料表的鎖定時間可能會加長。 範圍:全域或工作階段 |
3042 |
略過預設備份壓縮預先配置演算法,讓備份檔案只會視需要成長以達到其最終大小。 如果您只要配置壓縮備份所需的實際大小,藉以節省空間,這個追蹤旗標就很有用。 使用此追蹤旗標可能會導致效能稍微降低 (可能會增加備份作業的持續時間)。 如需有關預先配置演算法的詳細資訊,請參閱<備份壓縮 (SQL Server)>。 |
3205 |
依預設,如果磁帶機支援硬體壓縮,DUMP 或 BACKUP 陳述式就會使用它。 當使用這個追蹤旗標時,您可以停用磁帶機的硬體壓縮。 當您要與其他不支援壓縮的站台或磁帶機交換磁帶時,這非常有用。 範圍:全域或工作階段 |
3226 |
根據預設,每項成功的備份作業都會在 SQL Server 錯誤記錄檔與系統事件記錄檔中,加入一個項目。 如果您經常建立記錄備份,這些成功訊息可能會快速累積,因而產生龐大的錯誤記錄檔,讓您難以尋找其他訊息。 透過這個追蹤旗標,您可以隱藏這些記錄項目。 如果您正執行經常記錄備份,而且沒有任何指令碼相依於這些項目,這樣做就會很有用。 |
3608 |
防止 SQL Server 自動啟動並復原 master 資料庫以外的所有資料庫。如果起始需要 tempdb 的活動,則會復原 model 並建立 tempdb。 其他資料庫會在存取時啟動和復原。 但是,某些功能 (例如快照集隔離和讀取認可的快照集) 可能無法運作。 請針對移動系統資料庫和移動使用者資料庫使用。 請勿在一般作業期間使用。 |
3625 |
使用 '******' 來遮罩某些錯誤訊息的參數,藉以限制傳回給非系統管理員 (sysadmin) 固定伺服器角色成員之使用者的資訊量。 這樣做有助於避免洩漏機密資訊。 範圍:只有全域 |
4199 |
控制先前在多重追蹤旗標底下所做的多重查詢最佳化工具變更。 如需詳細資訊,請參閱這份 Microsoft 技術支援文件。 範圍:全域或工作階段 |
4616 |
讓應用程式角色可以看見伺服器層級的中繼資料。 在 SQL Server 中,應用程式角色不能存取本身資料庫之外的中繼資料,因為應用程式角色與伺服器層級主體沒有關聯。 這是和舊版 SQL Server 不同的一項行為變更。 設定這個全域旗標可停用新限制,使應用程式角色可以存取伺服器層級的中繼資料。 範圍:只有全域 |
6527 |
在 CLR 整合中第一次發生記憶體不足的例外狀況時停用記憶體傾印的產生。 依預設,在 CLR 中第一次發生記憶體不足的例外狀況時,SQL Server 會產生小型的記憶體傾印。 追蹤旗標的行為如下:
範圍:只有全域 |
7806 |
在 SQL Server Express 上啟用專用管理員連接 (DAC)。 依預設,SQL Server Express 上不會保留任何 DAC 資源。 如需詳細資訊,請參閱<資料庫管理員的診斷連接>。 範圍:只有全域 |
8032 |
將快取限制參數還原為 SQL Server 2005 RTM 設定,這項設定通常會允許使用更大的快取。 當經常重複使用的快取項目無法納入快取中,以及針對特定工作負載最佳化伺服器組態選項無法解決計畫快取的問題時,請使用這項設定。 警告 如果大型快取為其他記憶體取用者 (例如緩衝集區) 提供較少的記憶體,追蹤旗標 8032 可能會導致效能降低。 |
8207 |
啟用異動複寫的單一更新。 訂閱者的更新可以複寫為 DELETE 和 INSERT 配對。 這可能不符合商務規則,例如引發 UPDATE 觸發程序。 使用追蹤旗標 8207 時,只影響一個資料列的唯一資料行更新 (單一更新) 會複寫為 UPDATE,而不是 DELETE 或 INSERT 配對。 如果更新影響具有唯一條件約束的資料行,或是更新影響多個資料列,更新仍會複寫為 DELETE 或 INSERT 配對。 |
9485 |
停用 DBCC SHOW_STATISTICS 的 SELECT 權限。 |
備註
在 SQL Server 中有兩種類型的追蹤旗標:工作階段和全域。 工作階段追蹤旗標用於某個連接,而且只會在該連接顯示出來。 全域追蹤旗標是設在伺服器層級,只要是該伺服器上的連接,都看得到它們。 某些旗標只能啟用為全域旗標,某些則可以啟用為全域或工作階段範圍。
適用的規則如下:
全域追蹤旗標必須全域啟用, 否則追蹤旗標就沒有效果。 建議您使用 -T 命令列選項,在啟動時啟用全域追蹤旗標。
如果追蹤旗標具有全域或工作階段的範圍,可以使用適當的範圍加以啟用。 以工作階段層級啟用的追蹤旗標絕不會影響其他工作階段,而且當開啟該工作階段的 SPID 登出時,該追蹤旗標的效果也隨之消失。
請利用下列方法之一,將追蹤旗標設為開啟或關閉:
使用 DBCC TRACEON 和 DBCC TRACEOFF 命令。
例如,DBCC TRACEON 2528:若要全域啟用追蹤旗標,請使用 DBCC TRACEON 搭配 -1 引數:DBCC TRACEON (2528, -1)。 若要關閉全域追蹤旗標,請利用 -1 引數使用 DBCC TRACEOFF。
使用 -T 啟動選項,指定應在啟動期間設定追蹤旗標。
-T 啟動選項會全域啟用追蹤旗標。 您不能利用啟動選項啟用工作階段層級的追蹤旗標。 如需有關啟動選項的詳細資訊,請參閱<Database Engine 服務啟動選項>。
請利用 DBCC TRACESTATUS 命令來判斷目前有哪些旗標在使用中。
範例
下列範例利用 DBCC TRACEON 將追蹤旗標 3205 設為開啟。
DBCC TRACEON (3205,-1);
請參閱
參考
DBCC INPUTBUFFER (Transact-SQL)
DBCC OUTPUTBUFFER (Transact-SQL)