SQLSERVER跟蹤標志合集


SQLSERVER跟蹤標志合集

--以下示例以全局方式打開跟蹤標記 3205 和 260。
DBCC TRACEON (1118 ,-1)
GO
DBCC TRACESTATUS (1118,-1)
GO

 

SELECT * FROM [dbo].[CommandLog] OPTION  ( QUERYTRACEON 3604, QUERYTRACEON 9204)

 

 

 

 

轉載自:http://blog.sina.com.cn/s/blog_3eb222740100styi.html

260:打印有關擴展存儲過程動態鏈接庫 (DLL) 的版本控制信息。有關 __GetXpVersion() 的詳細信息,請參閱創建擴展存儲過程。
作用域:全局或會話

 

 

610:打開最小化日志,導入大批量數據的時候根據條件可以最小化日志ldf
http://www.cnblogs.com/seusoftware/p/7929573.html

 

1200:開啟Trace Flag 1200捕捉執行時的鎖.

http://www.cnblogs.com/shanksgao/p/4942928.html



1204:返回參與死鎖的鎖的資源和類型,以及受影響的當前命令。
作用域:僅全局

1211:於內存不足或基於鎖數禁用鎖升級。SQL Server 數據庫引擎不會將行鎖或頁鎖升級到表鎖。
使用此跟蹤標志可生成過多的鎖數目。這樣會降低數據庫引擎的性能,或因為內存不足而導致 1204 錯誤(無法分配鎖資源)。有關詳細信息,請參閱鎖升級(數據庫引擎)。
如果同時設置了跟蹤標志 1211 和 1224,則 1211 優先於 1224。但是,由於在所有情況下(甚至在內存緊張的情況下)跟蹤標志 1211 都禁止升級,因此建議使用 1224。這有助於在使用多個鎖時避免“鎖不足”錯誤。
作用域:全局或會話

1222:以不符合任何 XSD 架構的 XML 格式,返回參與死鎖的鎖的資源和類型,以及受影響的當前命令。
作用域:僅全局

1224:基於鎖數禁用鎖升級。但是,內存不足仍可激活鎖升級。如果鎖對象使用的內存量超出下列條件之一,數據庫引擎會將行鎖或頁鎖升級為表(或分區)鎖:
數據庫引擎所用內存的 40%,使用地址窗口化擴展插件 (AWE) 的內存分配除外。只有在 sp_configure 的 locks 參數設置為 0 時,這才適用。
使用 sp_configure 的 locks 參數配置的鎖內存的 40%。有關詳細信息,請參閱設置服務器配置選項。
如果同時設置了跟蹤標志 1211 和 1224,則 1211 優先於 1224。但是,由於在所有情況下(甚至在內存緊張的情況下)跟蹤標志 1211 都禁止升級,因此建議使用 1224。這有助於在使用多個鎖時避免“鎖不足”錯誤。
注意
也可以使用 ALTER TABLE 語句的 LOCK_ESCALATION 選項控制到表級或 HoBT 級粒度的鎖升級。
作用域:全局或會話

2528:禁用 DBCC CHECKDB、DBCC CHECKFILEGROUP 和 DBCC CHECKTABLE 執行的對象並行檢查。

默認情況下,並行度由查詢處理器自動確定。最大並行度的配置就像並行查詢的最大並行度一樣。有關詳細信息,請參閱 max degree of parallelism 選項。
通常應使並行 DBCC 保持啟用狀態。對於 DBCC CHECKDB,查詢處理器重新求值,並對檢查的每個表或每批表自動調整並行度。有時,檢查可能在服務器幾乎處於空閑狀態時啟動。如果管理員知道在檢查完成前負載將增加,則可能需要手動減小並行度或禁用並行度。
禁用對 DBCC 的並行檢查可能導致 DBCC 的完成時間變長,如果運行 DBCC 時啟用了 TABLOCK 功能並關閉了並行度,則表可能被鎖定更長時間。
作用域:全局或會話

 

2588:查看未公開DBCC命令的使用幫助

DBCC TRACEON(2588)

DBCC HELP('IND')

 



3205:默認情況下,如果磁帶機支持硬件壓縮,則 DUMP 或 BACKUP 語句會使用該功能。利用此跟蹤標志,可以禁用磁帶機的硬件壓縮。此選項在您需要與不支持壓縮的其他站點或磁帶機交換磁帶時很有用。
作用域:全局或會話

3226:默認情況下,每個成功的備份操作都會在 SQL Server 錯誤日志和系統事件日志中添加一個條目。如果非常頻繁地創建日志備份,這些成功消息會迅速累積,從而產生一個巨大的錯誤日志,使查找其他消息變得非常困難。
使用這一跟蹤標志,可以取消這些日志條目。如果您頻繁地運行日志備份,並且沒有任何腳本依賴於這些條目,則這種做法非常有用。

3608:禁止 SQL Server 自動啟動和恢復除 master 數據庫之外的任何數據庫。在訪問數據庫時將啟動並恢復該數據庫。可能無法運行某些功能,如快照隔離和讀提交快照。用於移動系統數據庫和移動用戶數據庫。請不要在正常操作中使用。

3625:限制錯誤消息中返回的信息量。有關詳細信息,請參閱元數據可見性配置。
作用域:僅全局

4199:控制以前基於多個跟蹤標志進行的多個查詢優化器更改。有關詳細信息,請參閱此 Microsoft 支持文章。
作用域:全局或會話

4616:使應用程序角色可以看到服務器級元數據。在 SQL Server 中,應用程序角色無法訪問自身數據庫以外的元數據,因為應用程序角色與服務器級主體不相關聯。這是對早期版本的 SQL Server 的行為的更改。設置此全局標志將禁用新的限制,並允許應用程序角色訪問服務器級元數據。
作用域:僅全局

6527:禁止在 CLR 集成中第一次發生內存不足異常時生成內存轉儲。默認情況下,SQL Server 在 CLR 中第一次發生內存不足異常時會生成小內存轉儲。該跟蹤標志的行為如下所示:
如果用作一個啟動跟蹤標志,則永遠不生成內存轉儲。但是,如果使用了其他跟蹤標志,則可能會生成內存轉儲。
如果在正在運行的服務器上啟用此跟蹤標志,則從此時開始不會自動生成內存轉儲。但是,如果已經由於 CLR 中的內存不足異常生成了內存轉儲,則此跟蹤標志將沒有任何效果。
作用域:僅全局

7806:在 SQL Server Express 上啟用專用管理員連接 (DAC)。默認情況下,在 SQL Server Express 上不保留 DAC 資源。有關詳細信息,請參閱使用專用管理員連接。
作用域:僅全局

 

845:SQLSERVER標准版打開鎖定內存頁功能需要 使用845跟蹤標志才能用這個功能,企業版不需要

http://www.sqlservergeeks.com/sql-server-trace-flag-845/

 

3604:DBCC PAGE的時候顯示頁面的信息

http://www.sqlservergeeks.com/sql-server-trace-flag-3604/

 

3605:將DBCC PAGE頁面信息打印到errorlog里面

http://www.sqlservergeeks.com/sql-server-trace-flag-3605/

 

3502:將checkpoint打印在errorlog里面

http://www.sqlservergeeks.com/sql-server-trace-flag-3502/

 

3504:checkpoint的詳細操作,包括吞吐量

http://www.sqlservergeeks.com/sql-server-trace-flag-3504/

 

3505:checkpoint的詳細操作,包括吞吐量

http://www.sqlservergeeks.com/sql-server-trace-flag-3505/

 

3014:數據庫備份的詳細過程

http://www.sqlservergeeks.com/sql-server-trace-flag-3014/

 

3226:不把數據庫備份信息記錄在errorlog里面

http://www.sqlservergeeks.com/sql-server-trace-flag-3226/

 

3004:數據庫還原詳細信息記錄在errorlog里面

http://www.sqlservergeeks.com/sql-server-trace-flag-3004/

 

1117:同一個文件組內的多個文件插入數據的時候會同時增長,而不是只增長第一個數據文件

http://www.sqlservergeeks.com/sql-server-trace-flag-1117/

 

1118:把表開頭的8個頁面在統一區里分配,對於tempdb里說,可以減少SGAM爭用

http://www.sqlservergeeks.com/sql-server-trace-flag-1118/

 

1204:跟蹤死鎖打印在errorlog里面

http://www.sqlservergeeks.com/category/one-trace-flag-a-day/page/4/

 

1222:跟蹤死鎖以XML格式打印在errorlog里面

http://www.sqlservergeeks.com/sql-server-deadlock-trace-flag-1222/

 

1224:阻止鎖升級

http://www.sqlservergeeks.com/sql-server-trace-flag-1224/

 

2528:執行DBCC CHECKDB, DBCC CHECKFILEGROUP DBCC CHECKTABLE的時候禁用並行,不用並行DBCC命令會用更長時間

http://www.sqlservergeeks.com/sql-server-trace-flag-2528/

 

1211:阻止鎖升級:鎖內存過高和鎖數目,優先級比1224高

http://www.sqlservergeeks.com/sql-server-trace-flag-1211/

 

1262:報告17883錯誤,獲取更多nonyield的信息,產生mini dump,產生mini dump會增加I/O開銷,SchedulerMonitor 的兩個階段

http://www.sqlservergeeks.com/sql-trace-flag-1262/

 

 

2340:對於排序運算符的高CPU消耗,微軟給出了一個跟蹤標志2340

http://www.sqlservergeeks.com/trace-flag-2340/

 

2301:迫使優化器選擇最優的查詢計划才去執行,但是會造成優化時間的增加

http://www.sqlservergeeks.com/sql-server-trace-flag-2301/

 

2537:使用fn_dblog讀取log的時候可以讀取inactive (非活動)部分事務日志,而不用2537的情況下也就是默認情況下只能讀取active部分

http://www.sqlservergeeks.com/trace-flag-2537/

 

2544、2546、2551: SQLDumper.exe

Trace Flag 2544 – generates full memory dump
Trace Flag 2551 – generates filtered memory dump
Trace Flag 2546 – generates dump file for all threads of SQL Server (mini dump)

http://www.sqlservergeeks.com/trace-flag-2544/

 

652:關閉sqlserver的預讀機制,Scan count 1, logical reads 20002, physical reads 2495,read-ahead reads 0, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.

http://www.sqlservergeeks.com/sql-server-trace-flag-652/

 

661:禁用系統的Ghost Removal Task 鬼影記錄清除任務

在PFS頁面里標記了頁面有鬼影記錄

http://www.sqlservergeeks.com/sql-server-trace-flag-661/

 

 

834:開啟large page allocation,系統大於 8 GB RAM,SQL 版本 Enterprise,前提是Locked Pages in memory開啟,頁面大小從2 Mb 到 16 MB不等

http://www.sqlservergeeks.com/sql-server-trace-flag-834/

 

2371:SQL根據需要自動修改統計信息更新的閥值,而不按照默認算法

http://www.sqlservergeeks.com/sql-server-trace-flag-2371/

 

2388:1、輸出某個統計信息的所有歷史更新記錄,包括更新時間2、顯示insert,update還是delete而造成的統計信息更新 3、只能用在SQL2012和SQL2014

http://www.sqlservergeeks.com/sql-server-trace-flag-2388/

 

 

2389:自動計算預估數目,SQL Server 2014 new cardinality estimator.SQL2014已經有新基數預估器,所以不會出現預估錯誤的情況

前提條件

你的統計信息里的前導列必須在SQLSERVER里標記為Ascending 查詢的時候必須用前導列作為過濾條件
覆蓋索引必須存在並且升序列作為前導列

http://www.sqlservergeeks.com/sql-server-trace-flag-2389/

 

 

2390:自動計算預估數目

前提條件

你的統計信息里的前導列必須在SQLSERVER里標記為Unknow 查詢的時候必須用前導列作為過濾條件

http://www.sqlservergeeks.com/sql-server-trace-flag-2390/

 

 

9481:在SQL2014里面跟基數預估器有關的traceflag,使用舊的基數預估器(兼容級別90),即使兼容級別設置為120

http://www.sqlservergeeks.com/trace-flag-9481/

http://blogs.technet.com/b/dataplatforminsider/archive/2014/03/17/the-new-and-improved-cardinality-estimator-in-sql-server-2014.aspx

 

2312:在SQL2014里面跟基數預估器有關的traceflag

http://www.sqlservergeeks.com/trace-flag-2312/

 

 

8011:禁止收集服務器信息,全局級別,所有包括scheduler ,exceptions 

ringbuffer能排查各種問題:外部內存壓力,內部內存壓力,schedulers 等
使用sys.dm_os_ring_buffers視圖看到收集的信息,ring_buffer_type

RING_BUFFER_EXCEPTION
RING_BUFFER_SCHEDULER
RING_BUFFER_MEMORY_BROKER_CLERKS
RING_BUFFER_RESOURCE_MONITOR

http://www.sqlservergeeks.com/sql-server-ring-buffer-trace-flag-8011/


8012:禁止收集服務器的scheduler 相關信息 ,只能在SQL啟動的時候使用此TF

<Frame>tags是什么?
通過sys.dm_os_ring_buffers DMV 可以訪問一系列內部信息,它包含了但不僅限於Connectivity Ring Buffer。作為DMV基礎的一部分,大多數的Ring Buffers 提供了事件發生時的棧蹤跡(stack trace),每一個<frame>提供了一個十六進制的函數地址。這些都可以分解為函數名,並dump Sqlservr.exe進程,在WinDbg打開dump,並采用基於函數的地址的LM命令。

http://blogs.msdn.com/b/apgcdsd/archive/2011/11/21/ring-buffer-sql-server-2008.aspx

scheduler 切換上下文 到其他的worker
worker掛起
worker重啟
worker進入搶占模式或非搶占模式

SELECT * FROM SYS.[dm_os_ring_buffers]

http://www.sqlservergeeks.com/sql-server-ring-buffer-trace-flag-8012/

 

 

8018:禁止收集最后的 256 exceptions 異常,SQL啟動的時候才能指定

http://www.sqlservergeeks.com/sql-server-ring-buffer-trace-flag-8018/

 

 

8019:禁止收集最后的 256 exceptions 異常,SQL啟動的時候才能指定,8018啟動了的不影響8019

http://www.sqlservergeeks.com/sql-server-ring-buffer-trace-flag-8019/

 

4013:在errorlog里打印出 登錄信息 Login: sa WIN-XXXXXX server process ID (SPID): xx, kernel process ID (KPID): xx.

http://www.sqlservergeeks.com/sql-server-trace-flag-4013/

 

 

4030:將客戶端發過來的內容打印在errorlog里面,跟DBCC INPUTBUFFER()是一樣的,包括字節和ASCII, 必須也要打開3605TF,需要在啟動sql服務的時候添加這個參數

可以代替network monitor的一部分

http://www.sqlservergeeks.com/sql-server-trace-flag-4030/

 

4031:將客戶端發過來的內容打印在errorlog里面,跟DBCC OUTPUTBUFFER()是一樣的

http://www.sqlservergeeks.com/sql-server-trace-flag-4031/

 

4032:跟蹤所有從客戶端發過來服務器的命令,打印在errorlog里面

http://www.sqlservergeeks.com/sql-server-trace-flag-4032/

 

4136:使用公式:vector * number of rows 來賦值給預估行數,而不是靠直方圖

http://www.sqlservergeeks.com/sql-server-trace-flag-4136/

 

 

7806:打開SQL express版的DAC功能,需要重啟SQL

http://www.sqlservergeeks.com/sql-server-trace-flag-7806/

 

3123:查看備份和還原時 buffercount和transfersize大小

http://www.sqlservergeeks.com/sql-server-trace-flag-3213/

 

 

3608: 在配置管理器的啟動項里添加這個TF,然后在啟動的時候只啟動系統數據庫,其他用戶庫只有在訪問的時候才啟動

快照隔離級別和已提交讀隔離級別不會工作

http://www.sqlservergeeks.com/sql-server-trace-flag-3608/

 

8602: 忽略所有的索引提示 with (index(IX_TEST_COLA))

http://www.sqlservergeeks.com/sql-server-trace-flag-8602/

 

9292: 打印出從元數據中得到的統計信息的頭信息

http://www.sqlservergeeks.com/sql-server-trace-flag-9292/

如何知道執行計划使用了那些統計信息
--http://blogs.msdn.com/b/apgcdsd/archive/2012/11/28/10372470.aspx

 

 

9204:打印出被加載的統計信息

http://www.sqlservergeeks.com/sql-server-trace-flag-9204/

 

8721:當sql內部的AutoStat 運行的時候打印運行信息到errorlog

http://www.sqlservergeeks.com/sql-server-trace-flag-8721/

 

 

3536:解釋內部堆棧

http://www.sqlskills.com/blogs/jonathan/an-xevent-a-day-24-of-31-what-is-the-callstack/

--Trace flag 3656 enables the call stacks to be resolved. This requires that the
--sqlservr.pdb file reside in the same directory as sqlservr.exe

DBCC TRACEON (3656, -1) 
GO

 


SELECT n.query('.') AS callstack
FROM
(
SELECT CAST(target_data as xml)
FROM sys.dm_xe_sessions AS s
INNER JOIN sys.dm_xe_session_targets AS t
ON s.address = t.event_session_address
WHERE s.name = 'system_health'
AND t.target_name = 'ring_buffer'
) AS src (target_data)
CROSS APPLY target_data.nodes('RingBufferTarget/event/action[@name="callstack"]') as q(n)
The output of our callstack action is now:

<action name="callstack" package="package0">
<type name="callstack" package="package0" />
<value>GenericEvent::CallNextAction+45 [ @ 0+0x0
_chkstk+f276c [ @ 0+0x0
ErrorReportedAutoPublish::Publish+190 [ @ 0+0x0
_chkstk+1bd96d [ @ 0+0x0
CXStmtError::XretExecute+6ae [ @ 0+0x0
CMsqlExecContext::ExecuteStmts&lt;1,1&gt;+55a [ @ 0+0x0
CMsqlExecContext::FExecute+58b [ @ 0+0x0
CSQLSource::Execute+319 [ @ 0+0x0
process_request+370 [ @ 0+0x0
process_commands+2b2 [ @ 0+0x0
SOS_Task::Param::Execute+11b [ @ 0+0x0
SOS_Scheduler::RunTask+ca [ @ 0+0x0
SOS_Scheduler::ProcessTasks+95 [ @ 0+0x0
SchedulerManager::WorkerEntryPoint+110 [ @ 0+0x0
SystemThread::RunWorker+60 [ @ 0+0x0
SystemThreadDispatcher::ProcessWorker+12c [ @ 0+0x0</value>
<text />
</action>

 

 

8649:針對特定的語句采用Trace flag(8649)對特定語句調整其實是最具針對性的強制啟用並行計划

http://www.cnblogs.com/shanksgao/p/4120992.html

 

9130:強制添加filter運算符 內存授予不正常的問題

http://www.cnblogs.com/shanksgao/p/4171265.html

 

272:禁用自增列的跳過現象,適用於sql2012和sql2014

https://social.technet.microsoft.com/Forums/zh-CN/65ff4cb5-0a33-4d6b-b332-2ac9a728dcac/sql?forum=sqlserverzhchs

 

3917:捕捉數據庫中eager writer的情況

http://www.cnblogs.com/shanksgao/p/3949251.html

 

 

1448:捕捉數據庫中eager writer的情況

啟用TF1448:事務復制和鏡像共用時,改變LogReader的讀取限,當鏡像故障時仍然可以從Principle讀取日志。

http://joetang.blog.51cto.com/2296191/1610270

 

 

8002:在設置了CPU關聯掩碼的情況下控制CPU的親和性

4核cpu的機器上,如果只啟用了2個cpu,也就是只設置了2個處理器關聯掩碼的情況不讓query只在某個cpu上跑,讓兩個scheduler都可以充分利用這兩個cpu

如果沒有設置cpu掩碼,也就是保持默認情況,這個跟蹤不會用到
https://www.sqlpassion.at/archive/2017/10/02/setting-a-processor-affinity-in-sql-server-the-unwanted-side-effects/?awt_l=BJCrA&awt_m=3XJudllqV6YUUTS

 

 

在errorlog里查看sqlserver是否啟用了執行卷維護任務(Performance Volume Maintenance Task)特權

-T3004

-T3605
http://www.cnblogs.com/woodytu/p/4639282.html

 

在服務器啟動時候,我們可以使用2個trace flag進行調度算法的指定

   -T8008      - 使用2012企業版之前的調度算法,也就是我在第一篇中寫到的算法

   -T8016       - 強制指派任務到首選scheduler上(基本上等於不進行什么算法判斷了)

http://www.cnblogs.com/liwei225/p/4624183.html

 

 


 msdn上的跟蹤標志合集

https://msdn.microsoft.com/zh-cn/library/ms188396.aspx

跟蹤  標志

說明

260

打印有關擴展存儲過程動態鏈接庫 (DLL) 的版本控制信息。 有關 __GetXpVersion() 的詳細信息,請參閱創建擴展存儲過程

作用域:全局或會話

634

禁用背景列存儲壓縮任務。 SQL Server 定期運行一個背景任務,對含有未壓縮數據的列存儲索引行組進行壓縮,每次壓縮一個這種行組。 列存儲壓縮可提高查詢性能,但也會占用系統資源。 通過用跟蹤標志 634 禁用背景壓縮任務可以手動控制列存儲壓縮的計時,之后可以隨時顯式調用 ALTER INDEX REORGANIZE 或 ALTER INDEX REBUILD。

作用域:僅全局

1204

返回參與死鎖的鎖的資源和類型,以及受影響的當前命令。

作用域:僅全局

1211

基於內存不足或基於鎖數禁用鎖升級。 SQL Server 數據庫引擎不會將行鎖或頁鎖升級到表鎖。

使用此跟蹤標志可生成過多的鎖數目。 這樣會降低數據庫引擎的性能,或因為內存不足而導致 1204 錯誤(無法分配鎖資源)。

如果同時設置了跟蹤標志 1211 和 1224,則 1211 優先於 1224。 但是,由於在所有情況下(甚至在內存緊張的情況下)跟蹤標志 1211 都禁止升級,因此建議使用 1224。 這有助於在使用多個鎖時避免“鎖不足”錯誤。

作用域:全局或會話

1222

以不符合任何 XSD 架構的 XML 格式,返回參與死鎖的鎖的資源和類型,以及受影響的當前命令。

作用域:僅全局

1224

基於鎖數禁用鎖升級。 但是,內存不足仍可激活鎖升級。 如果鎖對象使用的內存量超出下列條件之一,數據庫引擎會將行鎖或頁鎖升級為表(或分區)鎖:

  • 數據庫引擎占用的 40% 的內存。 只有在 sp_configure 的 locks 參數設置為 0 時,這才適用。

  • 使用 sp_configure 的 locks 參數配置的鎖內存的 40%。 有關詳細信息,請參閱服務器配置選項 (SQL Server)

如果同時設置了跟蹤標志 1211 和 1224,則 1211 優先於 1224。 但是,由於在所有情況下(甚至在內存緊張的情況下)跟蹤標志 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 的完成時間變長,如果運行 DBCC 時啟用了 TABLOCK 功能並關閉了並行度,則表可能被鎖定更長時間。

作用域:全局或會話

3042

繞過默認的備份壓縮預先分配算法,以便允許備份文件僅根據需要增長以達到其最終大小。 如果您需要僅分配壓縮的備份所需的實際大小以便節約空間,則此跟蹤標志將很有用。使用此跟蹤標志可能會導致輕微的性能損失(在備份操作期間損失可能會增加)。

有關預先分配算法的詳細信息,請參閱備份壓縮 (SQL Server)

3205

默認情況下,如果磁帶機支持硬件壓縮,則 DUMP 或 BACKUP 語句會使用該功能。 利用此跟蹤標志,可以禁用磁帶機的硬件壓縮。 此選項在您需要與不支持壓縮的其他站點或磁帶機交換磁帶時很有用。

作用域:全局或會話

3226

默認情況下,每個成功的備份操作都會在 SQL Server 錯誤日志和系統事件日志中添加一個條目。 如果非常頻繁地創建日志備份,這些成功消息會迅速累積,從而產生一個巨大的錯誤日志,使查找其他消息變得非常困難。

使用這一跟蹤標志,可以取消這些日志條目。 如果您頻繁地運行日志備份,並且沒有任何腳本依賴於這些條目,則這種做法非常有用。

3608

禁止 SQL Server 自動啟動和恢復除 master 數據庫之外的任何數據庫。在訪問數據庫時將啟動並恢復該數據庫。 可能無法運行某些功能,如快照隔離和讀提交快照。 用於移動系統數據庫移動用戶數據庫。 請不要在正常操作中使用。

3625

通過使用“******”屏蔽某些錯誤消息的參數,限制返回給不是 sysadmin 固定服務器角色成員的用戶的信息量。 這可以幫助阻止披露敏感信息。

作用域:僅全局

4199

控制是否以前根據多個跟蹤標志進行了多個查詢優化器更改。 有關詳細信息,請參閱此 Microsoft 支持文章

作用域:全局或會話

4616

使應用程序角色可以看到服務器級元數據。 在 SQL Server 中,應用程序角色無法訪問自身數據庫以外的元數據,因為應用程序角色與服務器級別主體不相關聯。 這是對早期版本的 SQL Server 的行為的更改。 設置此全局標志將禁用新的限制,並允許應用程序角色訪問服務器級元數據。

作用域:僅全局

6527

禁止在 CLR 集成中第一次發生內存不足異常時生成內存轉儲。 默認情況下,SQL Server 在 CLR 中第一次發生內存不足異常時會生成小內存轉儲。 該跟蹤標志的行為如下所示:

  • 如果用作一個啟動跟蹤標志,則永遠不生成內存轉儲。 但是,如果使用了其他跟蹤標志,則可能會生成內存轉儲。

  • 如果在正在運行的服務器上啟用此跟蹤標志,則從此時開始不會自動生成內存轉儲。 但是,如果已經由於 CLR 中的內存不足異常生成了內存轉儲,則此跟蹤標志將沒有任何效果。

作用域:僅全局

7806

在 SQL Server Express 上啟用專用管理員連接 (DAC)。 默認情況下,在 SQL Server Express 上不保留 DAC 資源。 有關詳細信息,請參閱用於數據庫管理員的診斷連接

作用域:僅全局

8032

將緩存限制參數還原為 SQL Server 2005RTM 設置,此設置通常允許更大的緩存。 當頻繁重復使用的緩存條目不適合緩存時,以及當使用“針對即席工作負荷進行優化”服務器配置選項未能解決與計划緩存相關的問題時,請使用此設置。

注意事項 注意

如果大緩存使較少的內存可用於其他內存消耗者(如緩沖池),則跟蹤標志 8032 可能導致性能較差。

8207

允許事務復制的單獨更新。 對訂閱服務器的更新可以作為 DELETE 和 INSERT 對復制。 這可能不滿足業務規則的要求,如激發 UPDATE 觸發器。 使用跟蹤標志 8207 時,對只影響一行的唯一列的更新(單獨更新)將作為 UPDATE 而非作為 DELETE 或 INSERT 對復制。 如果該更新影響具有唯一約束的列或影響多個行,則仍將該更新作為 DELETE 或INSERT 對復制。

9485

對 DBCC SHOW_STATISTICS 禁用 SELECT 權限。

2332 : Force DML Request Sort (CUpdUtil::FDemandRowsSortedForPerformance)

8633: Enable prefetch (CUpdUtil::FPrefetchAllowedForDML and CPhyOp_StreamUpdate::FDoNotPrefetch)

8744 : Disable prefetch (CUpdUtil::FPrefetchAllowedForDML)

8758 : Disable rewrite to a single operator plan (CPhyOp_StreamUpdate::PqteConvert)

8790 : Force a wide update plan (CUpdUtil::PexprBuildWideUpdatePlan)

8795 : Disable DML Request Sort (CUpdUtil::FDemandRowsSortedForPerformance)

9115 : Disable prefetch (CUpdUtil::FPrefetchAllowedForDML)

http://sqlblog.com/blogs/paul_white/archive/2013/01/26/optimizing-t-sql-queries-that-change-data.aspx

 

1117 允許在同一個文件組下的所有文件都一起自動增長autogrow,而不是只有單個文件增長,只能用在所有文件在同一個文件組下,每個文件組一個文件這種情況下無效

http://blogs.technet.com/technet_blog_images/b/sql_server_sizing_ha_and_performance_hints/archive/2012/02/09/sql-server-2008-trace-flag-t-1117.aspx

 

8690:禁用table spool
https://blogs.msdn.microsoft.com/psssql/2015/12/15/spool-operator-and-trace-flag-8690/?utm_source=twitterfeed&utm_medium=twitter

 

2335:分配太多內存給SQL 造成執行計划效率不高

https://support.microsoft.com/en-us/kb/2413549

 

4137:基數預估器對於where條件有關的and 條件導致執行計划效率低下
(column1 = constant1 or column1 = constant2 or …) and (column2 = constant3 or column2 = constant4 or …) and …
https://support.microsoft.com/en-us/kb/2658214

 

4138:優化器預估行數不對  IN ,EXISTS子查詢
https://support.microsoft.com/en-us/kb/2667211

 

2453:SQL 2012 SP2和SQL Server CU3引入的,其作用於OPTION(RECOMPILE)類似,使得查詢優化器在生成執行計划時對表變量有一個“准確”的預估行數,而不是簡單粗暴地使用預估行數1
http://www.cnblogs.com/TeyGao/p/5612257.html#top

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM