程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> DBA應當曉得的一些關於SQL Server跟蹤標志的應用

DBA應當曉得的一些關於SQL Server跟蹤標志的應用

編輯:MySQL綜合教程

DBA應當曉得的一些關於SQL Server跟蹤標志的應用。本站提示廣大學習愛好者:(DBA應當曉得的一些關於SQL Server跟蹤標志的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是DBA應當曉得的一些關於SQL Server跟蹤標志的應用正文


跟蹤標志是甚麼?

    關於DBA來講,控制Trace Flag是一個成為SQL Server高手的需要前提之一,在年夜多半情形下,Trace Flag只是一個劍走偏鋒的奇招,不用要,但在許多情形下,會應用這些標志可讓你更好的掌握SQL Server的行動。

上面是官方關於Trace Flag的標志:

    跟蹤標志是一個標志,用於啟用或禁用SQL Server的某些行動。

    由下面的界說不好看出,Trace Flag是一種用來掌握SQL Server的行動的方法。許多DBA對Trace Flag都存在一些誤區,以為只要在測試和開辟情況中才有能夠用到Trace Flag,這類設法主意只能說部門准確,是以關於Trace Flag可以分為兩類,合適在臨盆情況中應用的和不合適在臨盆情況中應用的。

    Important:Trace Flag屬於劍走偏鋒的招數,在應用Trace Flag做優化之前,先Apply根本的Best Practice。

若何掌握跟蹤標志

    掌握跟蹤標志的方法有以下三種:

1.經由過程DBCC敕令

    可以經由過程DBCC敕令來啟用或封閉跟蹤標志,這類方法的利益是簡略易用,分離應用上面三個敕令來啟用,禁用曾經檢查跟蹤標志的狀況:

DBCC TRACEON(2203,-1) DBCC TRACEOFF(2203,1) DBCC TRACESTATUS

個中,TRACEON和TRACEOFF第二個參數代表啟用標記的規模,1是Session Scope,-1是Global Scope,假如不指定該值,則堅持默許值Session Scope。

別的,值得說的是,假如你願望在每次SQL Server辦事啟動時經由過程DBCC敕令掌握某些Flag,則應用

EXEC sp_procoption @ProcName = '<procedure name>'   , @OptionName = ] 'startup'   , @OptionValue = 'on'; 

這個存儲進程來指定,sp_procoption存儲進程會在SQL Server辦事器啟動時主動履行。

       還有一點值得留意的是,不是一切的跟蹤標志都可以用DBCC敕令啟動,好比Flag 835就只能經由過程啟動參數指定。

2.經由過程在SQL Server設置裝備擺設治理器中指定

這類方法是經由過程在數據庫引擎啟動項裡加啟動參數設置,只要Global Scope。格局為-T#跟蹤標志1;T跟蹤標志2;T跟蹤標志3。

3.經由過程注冊表啟動

     這類方法和辦法2年夜同小異,就不多說了。


一些在臨盆情況中能夠須要的跟蹤標志

Trace Flag 610
削減日記發生量。假如你關於日記用了許多基本的best practice,好比說只要一個日記文件、VLF數目恰當、零丁存儲,假如照樣不克不及減緩日記過年夜的話,斟酌應用該跟蹤標志。

參考材料:

http://msdn.microsoft.com/en-us/library/dd425070.aspx
http://blogs.msdn.com/b/sqlserverstorageengine/archive/2008/10/24/new-update-on-minimal-logging-for-sql-server-2008.aspx
Trace Flag 834
應用 Microsoft Windows 年夜頁面緩沖池分派。假如辦事器是SQL Server公用辦事器的話,值得開啟該跟蹤標志。
Trace Flag 835
許可SQL Server 2005和2008尺度版應用"鎖定內存頁",和在組戰略中設置的成果年夜同小異,然則許可在尺度版中應用.
Trace Flag 1118
tempdb分派全部區,而不是混雜區,削減SGAM頁爭搶。
當apply tempdb的best practice以後,還碰到爭搶成績,斟酌應用該跟蹤標志。
參考材料:
http://blogs.msdn.com/b/psssql/archive/2008/12/17/sql-server-2005-and-2008-trace-flag-1118-t1118-usage.aspx
Trace Flag 1204和1222
這兩個跟蹤標志都是將逝世鎖寫到毛病日記中,不外1204是以文本格局停止,而1222是以XML格局保留。可以經由過程
sp_readerrorlog檢查日記。
Trace Flag 1211和1224
兩種方法都是禁用鎖進級。但行動有所差異1211是不管什麼時候都不會鎖進級,而1224在內存壓力年夜的時刻會啟用鎖進級,從而防止了out-of-locks毛病。當兩個跟蹤標志都啟用是,1211的優先級更高。
Trace Flag 2528
禁用並行履行DBCC CHECKDB, DBCC CHECKFILEGROUP,DBCC CHECKTABLE。這意味著這幾個敕令只能單線程履行,這能夠會須要更多的時光,然則在某些特定情形下照樣有些用途。
Trace Flag 3226  
避免日記記載勝利的備份。假如日記備份過於頻仍的話,會發生年夜量毛病日記,啟用該跟蹤標志可使得日記備份不再被記載到毛病日記。
Trace Flag 4199
一切KB補釘關於查詢剖析器行動的修正都失效,這個敕令比擬風險,能夠掃稱機能的降低,詳細請參看:
http://support.microsoft.com/kb/974006
不該該在臨盆情況中啟用的跟蹤標志 
Trace Flag 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.
 
參考材料:http://support.microsoft.com/kb/841776
 
該跟蹤標志會極年夜的下降機能!!!

Trace Flag 818 
 
檢討寫分歧性
蹤標記 818 啟用了一個內存中的環形緩沖區,用於跟蹤由運轉 SQL Server 的盤算機履行的最初 2,048 個勝利寫操作(不包含排序和任務文件 I/O)。產生 605、823 或 3448 之類的毛病時,將傳入緩沖區的日記序列號 (LSN) 值與最新寫出列表停止比擬。假如在讀操作時代檢索到的 LSN 比在寫操作時代指定的更舊,就會在 SQL Server 毛病日記中記載一條新的毛病信息。年夜部門 SQL Server 寫操作以檢討點或惰性寫入情勢湧現。惰性寫入是一項應用異步 I/O 操作的後台義務。環形緩沖區的完成是輕量的,是以對體系機能的影響可以疏忽。

參考材料:http://support.microsoft.com/kb/826433

Trace Flag 1200 
 
前往加鎖信息的全部進程,是進修加鎖進程很牛逼的標記,示例代碼以下:
 
DBCC TRACEON(1200,-1)DBCC TRACEON(3604)DBCC TRACESTATUSSELECT * FROM AdventureWorks.person.Address
 
參考材料:
http://stackoverflow.com/questions/7449061/nolock-on-a-temp-table-in-sql-server-2008

Trace Flag 1806
 
禁用即時文件初始化,一切的磁盤空間要求全體應用填0初始化,能夠形成在空間增加時發生壅塞。
 
Trace Flag 3502
在日記中顯示有關checkpoint的相干信息。如圖1所示。
2013-04-23_233140
圖1.在毛病日記中顯示Checkpoint

Trace Flag 3505
不許可主動停止checkpoint,checkpoint只妙手動停止,長短常風險的一個敕令。
 
小結

跟蹤標記是掌握SQL Server行動的一種方法,關於某些跟蹤標記來講,可以在臨盆情況中進步機能,而關於另外一些來講,用在臨盆情況中是一件異常風險的工作,只要在測試情況中能力被應用。要記住,跟蹤標志關於調優是一種劍走偏鋒的手腕,只要在應用了一切根本的調優手腕以後,才斟酌應用跟蹤標志。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved