追蹤旗標 (Transact-SQL)

追蹤旗標用來暫時設定特定伺服器性質,或關閉特定行為。 例如,如果在啟動 SQL Server 執行個體時,設定追蹤旗標 3205,就會停用磁帶機的硬體壓縮。 追蹤旗標經常用來診斷效能問題,或偵錯預存程序或複雜電腦系統。

下表列出並描述 SQL Server 中可用的追蹤旗標。

[!附註]

在未來的 SQL Server 版本中,不一定支援追蹤旗標行為。

追蹤旗標

描述

260

列印擴充預存程序動態連結程式庫 (DLL) 的版本控制相關資訊。 如需有關 __GetXpVersion() 的詳細資訊,請參閱<建立擴充預存程序>。

範圍:全域或工作階段

1204

傳回參與死結之鎖定的資源和類型,以及目前受影響的命令。

範圍:僅限全域

1211

停用以記憶體壓力或鎖定個數為基礎的鎖定擴大。 SQL Server Database Engine 不會將資料列或頁面鎖定擴大到資料表鎖定。

使用這個追蹤旗標可能產生大量鎖定。 這可能會降低 Database Engine 的效能,或因記憶體不足而造成 1204 錯誤 (無法配置鎖定資源)

如果同時設定了追蹤旗標 1211 和 1224,將會優先採用 1211。 但是,由於追蹤旗標 1211 會在每一個情況下防止鎖定擴大 (即使是在記憶體壓力下),所以建議您最好使用 1224。 如此可避免在使用許多鎖定時,發生「鎖定不足」錯誤。

範圍:全域或工作階段

1222

以不符合任何 XSD 結構描述的 XML 格式來傳回參與死結之鎖定的資源和類型,以及目前受影響的命令。

範圍:僅限全域

1224

停用以鎖定個數為基礎的鎖定擴大。 不過,記憶體壓力仍然可以啟動鎖定擴大。 如果鎖定物件使用的記憶體數量超出下列其中一個條件,Database Engine 就會將資料列或頁面鎖定擴大至資料表 (或資料分割) 鎖定:

  • Database Engine 所用記憶體的 40%。 只有當 sp_configurelocks 參數設為 0 時,這個條件才適用。

  • 使用 sp_configurelocks 參數設定之鎖定記憶體的 40%。 如需詳細資訊,請參閱<伺服器組態選項>。

如果同時設定了追蹤旗標 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 會產生小型的記憶體傾印。 追蹤旗標的行為如下:

  • 如果這是用來當做啟動追蹤旗標,則絕不會產生記憶體傾印。 不過,如果使用了其他的追蹤旗標,就可能產生記憶體傾印。

  • 如果在執行的伺服器上啟用這個追蹤旗標,則不會從該點開始自動產生記憶體傾印。 不過,如果因為在 CLR 中發生記憶體不足的例外狀況而已經產生記憶體傾印,這個追蹤旗標就不會有任何效果。

範圍:僅限全域

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)

請參閱

參考

資料類型 (Transact-SQL)

DBCC INPUTBUFFER (Transact-SQL)

DBCC OUTPUTBUFFER (Transact-SQL)

DBCC TRACEOFF (Transact-SQL)

DBCC TRACEON (Transact-SQL)

DBCC TRACESTATUS (Transact-SQL)

EXECUTE (Transact-SQL)

SELECT (Transact-SQL)

SET NOCOUNT (Transact-SQL)