首頁 資料庫 mysql教程 DBA应该知道的一些SQL Server跟踪标记

DBA应该知道的一些SQL Server跟踪标记

Jun 07, 2016 pm 05:44 PM
server 標記 知道 追蹤

跟踪标记是什么? 对于DBA来说,掌握Trace Flag是一个成为SQL Server高手的必要条件之一,在大多数情况下,Trace Flag只是一个剑走偏锋的奇招,不必要,但在很多情况下,会使用这些标记可以让你更好的控制SQL Server的行为。 下面是官方对于Trace Flag的标记

跟踪标记是什么?

    对于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命令来启用或关闭跟踪标记,这种方式的好处是简单易用,分别使用下面三个命令来启用,禁用已经查看跟踪标记的状态:

 

其中,TRACEON和TRACEOFF第二个参数代表启用标志的范围,1是Session Scope,-1是Global Scope,如果不指定该值,则保持默认值Session Scope。

另外,值得说的是,如果你希望在每次SQL Server服务启动时通过DBCC命令控制某些Flag,则使用

EXEC sp_procoption @ProcName = '' , @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数量适当、单独存储,如果还是不能缓解日志过大的话,考虑使用该跟踪标记。

参考资料:

 

 

Trace Flag 834 使用 Microsoft Windows 大页面缓冲池分配。如果服务器是SQL Server专用服务器的话,值得开启该跟踪标记。

 

Trace Flag 835 允许SQL Server 2005和2008标准版使用"锁定内存页",网站空间,和在组策略中设置的结果大同小异,但是允许在标准版中使用.

 

Trace Flag 1118 tempdb分配整个区,而不是混合区,减少SGAM页争抢。 当apply tempdb的best practice之后,还遇到争抢问题,考虑使用该跟踪标记。 参考资料:

 

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补丁对于查询分析器行为的修改都生效,这个命令比较危险,可能扫称性能的下降,具体请参看:     不应该在生产环境中启用的跟踪标记   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. 参考资料: 该跟踪标记会极大的降低性能!!!
Trace Flag 818  检查写一致性踪标志 818 启用了一个内存中的环形缓冲区,用于跟踪由运行 SQL Server 的计算机执行的最后 2,048 个成功写操作(不包括排序和工作文件 I/O)。发生 605、823 或 3448 之类的错误时,将传入缓冲区的日志序列号 (LSN) 值与最新写入列表进行比较。如果在读操作期间检索到的 LSN 比在写操作期间指定的更旧,就会在 SQL Server 错误日志中记录一条新的错误信息。大部分 SQL Server 写操作以检查点或惰性写入形式出现。惰性写入是一项使用异步 I/O 操作的后台任务。环形缓冲区的实现是轻量的,因此对系统性能的影响可以忽略。
参考资料:
Trace Flag 1200  返回加锁信息的整个过程,是学习加锁过程很牛逼的标志,示例代码如下: DBCC TRACEON(1200,-1) DBCC TRACEON(3604) DBCC TRACESTATUS SELECT * FROM AdventureWorks.person.Address 参考资料:
Trace Flag 1806 禁用即时文件初始化,所有的磁盘空间请求全部使用填0初始化,可能造成在空间增长时产生阻塞。 Trace Flag 3502在日志中显示有关checkpoint的相关信息。如图1所示。

2013-04-23_233140

图1.在错误日志中显示Checkpoint
Trace Flag 3505不允许自动进行checkpoint,checkpoint只能手动进行,是非常危险的一个命令。  小结
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1424
52
Laravel 教程
1322
25
PHP教程
1270
29
C# 教程
1250
24
掃雷怎麼標記? -掃雷怎麼更改難度? 掃雷怎麼標記? -掃雷怎麼更改難度? Mar 18, 2024 pm 06:34 PM

掃雷怎麼標記?首先,我們需要熟悉掃雷遊戲中的標記方式。通常情況下,掃雷遊戲中有兩種常見的標記方式:旗子標記和問號標記。旗子標記用來表示該方塊中有地雷,是一種確定性的標記;而問號標記則表示該方塊可能存在地雷,但並非確定性。這兩種標記方式在遊戲中起著重要的作用,幫助玩家推斷哪些方塊可能存在地雷,從而有效地進行下一步操作。熟練運用這些標記方式可以提高玩家在掃雷遊戲中的成功率,並降低踩雷的風險。因此,在玩掃雷遊戲時,掌握好旗子標記和問號標記的當玩家不能確定某一個方格是否有地雷時,可以使用問號標記來進行標記

百度地圖怎麼標記多個地點 標記多個地點方法 百度地圖怎麼標記多個地點 標記多個地點方法 Mar 15, 2024 pm 04:28 PM

上面的功能非常的多,尤其是對於在地圖方面可以標記到多個地方的一些為止,我們在知道一些地方的時候,肯定是採用標點的一些功能,這樣就可以為你們帶來多種不同方面的一些功能,你們所標點都會產生距離的差異,也就是可以知道距離究竟有多遠,當然也會顯示出上面地點的的一些名稱和詳細的信息都可以,但是很多網友們可能對於上面的一些內容資訊都不是非常的清楚,所以為了能夠讓大家們更好的進行多方面的一些選擇,所以今日小編就來給你們帶來多種不同方面的一些選擇,所以有興趣想法的朋友們,你也有興趣的話,就來試試看。  標

遊戲視覺效果的路徑追蹤與光線追蹤 遊戲視覺效果的路徑追蹤與光線追蹤 Feb 19, 2024 am 11:36 AM

決定使用路徑追蹤或光線追蹤對於遊戲開發者來說是一個關鍵的選擇。雖然它們在視覺上都有出色的表現,但在實際應用上存在一些差異。因此,遊戲愛好者需要仔細權衡兩者的優勢和劣勢,以確定哪種技術更適合實現他們想要的視覺效果。什麼是光線跟踪?光線追蹤是一種複雜的渲染技術,用於模擬光線在虛擬環境中的傳播和互動。與傳統的光柵化方法不同,光線追蹤透過追蹤光線的路徑來產生真實的光照和陰影效果,從而提供更逼真的視覺體驗。這種技術不僅可以產生更真實的影像,還可以模擬更複雜的光線效果,使場景看起來更加逼真和生動。其主要概念

如何安裝、解除安裝、重設Windows伺服器備份 如何安裝、解除安裝、重設Windows伺服器備份 Mar 06, 2024 am 10:37 AM

WindowsServerBackup是WindowsServer作業系統自帶的功能,旨在協助使用者保護重要資料和系統配置,並為中小型和企業級企業提供完整的備份和復原解決方案。只有執行Server2022及更高版本的使用者才能使用此功能。在本文中,我們將介紹如何安裝、解除安裝或重設WindowsServerBackup。如何重置Windows伺服器備份如果您的伺服器備份遇到問題,備份所需時間過長,或無法存取已儲存的文件,那麼您可以考慮重新設定WindowsServer備份設定。要重設Windows

如何在HTML中標記刪除線文字? 如何在HTML中標記刪除線文字? Aug 25, 2023 pm 10:45 PM

若要在HTML中標記刪除線文本,請使用<strike>…</strike>標籤。它會呈現一個刪除線文字。 HTML已經棄用了這個標籤,在HTML5中不應該使用它。作為替代,可以使用CSS的text-decoration屬性。若要使用CSS屬性,請使用style屬性。 style屬性為元素指定了內聯樣式。此屬性可以與HTML的<p>標籤一起使用。請記住,HTML5不支援<strike>標籤,所以應該使用CSS樣式。範例您可以嘗試運行以下

百度地圖如何標記-百度地圖標記的具體操作 百度地圖如何標記-百度地圖標記的具體操作 Mar 04, 2024 pm 08:46 PM

你們電腦中是不是也在使用百度地圖軟體呢?不過你們知道百度地圖如何標記嗎?下面這篇文章就為大夥帶來了百度地圖標記的具體操作,讓我們一同來下文看看吧。進入百度地圖後點擊右上角選擇地區,如圖選擇好地區後在地圖中選擇工具,如圖在地圖中選擇標記,如圖標記,自己想要標記的地圖,在這裡我們以北京市西城區前青廠胡同33號為例,如圖直接選擇保存就好了,如圖

C#中如何使用日誌記錄追蹤程式運行 C#中如何使用日誌記錄追蹤程式運行 Oct 09, 2023 pm 03:51 PM

C#中如何使用日誌記錄追蹤程式運行,需要具體程式碼範例引言:在開發軟體時,常常需要對程式運行情況進行追蹤和記錄,以便在出現問題時能夠準確找到問題所在。日誌記錄是一種重要的技術手段,可以記錄程式的運作狀態、錯誤訊息和偵錯訊息,以便進行異常定位和問題排查。本文將介紹C#中如何使用日誌記錄追蹤程式的運行,並提供具體程式碼範例。一、日誌記錄庫的選擇在C#中,有許多優秀的

怎麼修改Nginx版本名稱偽裝任意web server 怎麼修改Nginx版本名稱偽裝任意web server May 14, 2023 pm 09:19 PM

如何修改nginx預設的名稱,可以稍微的偽裝一下,也可以裝x一般來說修改3個位置,一個是nginx.h、另一個是ngx_http_header_filter_module.c、還有一個ngx_http_special_response.c。提示:一般修改都是在nginx編譯之前修改,修改完了之後需要重新編譯程式碼如下:scr/core/nginx.conf#definenginx_version"1.4.7"#definenginx_ver"nginx/"n

See all articles