博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 2008 R2提高DBCC CHECKDB速度的trace flags
阅读量:4564 次
发布时间:2019-06-08

本文共 921 字,大约阅读时间需要 3 分钟。

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

这两个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 中才有效。

转载于:https://www.cnblogs.com/love007/archive/2012/08/28/2660611.html

你可能感兴趣的文章
制作导航条
查看>>
iOS中的内存管理1
查看>>
23种设计模式全解析
查看>>
Learning Python 008 正则表达式-003 sub()方法
查看>>
Linux的虚拟机拷贝到另外的操作系统时,NAT方式的静态IP无效,一直是获取的DHCP动态地址...
查看>>
要检测两个C文件的代码的抄袭情况
查看>>
PHP-多域名单点登陆方案
查看>>
iOS开发之应用内支付IAP全部流程
查看>>
【web技术】html特效代码(一)
查看>>
SWFObject: 基于Javascript的Flash媒体版本检测与嵌入模块
查看>>
高可用集群搭建
查看>>
Lua学习笔记
查看>>
Redis监控工具,命令和调优
查看>>
zabbix-mysql迁移分离
查看>>
jQuery调用WCF 说明
查看>>
算法第5章作业
查看>>
7.9 练习
查看>>
基于ArcGIS JS API的在线专题地图实现
查看>>
learnByWork
查看>>
Unity3D热更新之LuaFramework篇[04]--自定义UI监听方法
查看>>