注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

忘忧草的博客

品味人生--精通IT管理和技术

 
 
 

日志

 
 
 
 

SQL Server 2008 R2提高DBCC CHECKDB速度的trace flags  

2012-08-28 17:59:54|  分类: sql2012 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

DBA的头痛的一个问题是, 如果数据库很大,比如几百GB, 几个TB,那么DBCC CHECKDB可能需要很长时间如几个小时甚至整天. 尽管CHECKDB可以在线运行,但其会影响磁盘性能,如何缩短CHECKDB的时间对于一个繁忙的服务务器还是很重要。

在SQL 2008 R2 中新增了两个trace flag, 可以用来提高CHECKDB的速度。一个是2549,一个是2562,下面的文档有具体描述:

2634571 Improvements for the DBCC CHECKDB command may result in faster performance when you use the PHYSICAL_ONLY option

http://support.microsoft.com/default.aspx?scid=kb;EN-US;2634571

这两个trace flag的都是用来充分利用IO的处理能力的。缺省情况下,DBCC CHECKDB为了避免过度使用TEMPDB以及磁盘资源,它会逐批处理数据库的index。 新的trace flag会改变这个行为,这样它不再分批处理。这样对磁盘的读写就多了,如果磁盘购快,CHECKDB就快了。

Trace flag 带来的另外一个改变就是, 缺省情况下,CHECKDB会并发读写文件,如果他们位于不同的磁盘上。有了trace flag, 即便文件处于同一个盘符下面,SQL server 也把它们当作位于不同的磁盘上。这对于磁盘是 mount point 的情况特别有用。比如你有5个磁盘都是mount point的, 挂在F:盘下的不同目录。这种情况下SQL server就可以把它们当作真正的不同的物理盘。

根据一些测试,这两个trace flag能够提高大概20%~50%的速度。不过, 只有在使用 PHYSICAL_ONLY的情况下。实际上在我的服务器上,我测试下来,缩短的时间并使很明显。大概15%左右。 这个估计和我的PC不是真的服务器,所以并发能力不高有关。

这两个trace flag需要在R2 CU11 或者R2 SP1 CU4 中才有效。

  评论这张
 
阅读(620)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017