sql server2005索引碎片分析和解决方法

sql server2005索引碎片分析和解决方法

ID:10252738

大小:30.00 KB

页数:4页

时间:2018-06-13

sql server2005索引碎片分析和解决方法_第1页
sql server2005索引碎片分析和解决方法_第2页
sql server2005索引碎片分析和解决方法_第3页
sql server2005索引碎片分析和解决方法_第4页
资源描述:

《sql server2005索引碎片分析和解决方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SQLServer2005索引碎片分析和解决方法 毫无疑问,给表添加索引是有好处的,你要做的大部分工作就是维护索引,在数据更改期间索引可能产生碎片,所以一些维护是必要的。碎片可能是你查询产生性能问题的来源。  怎样确定索引是否有碎片?  SQLServer提供了一个数据库命令:DBCCSHOWCONTIG,来确定一个指定的表或索引是否有碎片。下面举一个例子:  对't_exam'表执行DBCCSHOWCONTIG,结果如下:  -扫描页数.............................

2、........:20229  -扫描扩展盘区数...............................:2543  -扩展盘区开关数...............................:15328  -每个扩展盘区上的平均页数.....................:8.0 -扫描密度〔最佳值:实际值〕....................:16.50%〔2529:15329〕【如果小于100,则存在碎片。16.50%说明有很多碎片】-逻辑扫描碎片.............

3、....................:46.23%【如果为0是最好)】  -扩展盘区扫描碎片.............................:45.10%  -每页上的平均可用字节数.......................:3240.1 -平均页密度(完整)...........................:59.97%【如果为100%是最好】  以上结果显示:逻辑扫描碎片和扩展盘区扫描碎片都非常大,需要对索引碎片进行处理。  DBCCDBREINDEX和DBCCINDE

4、XDEFRAG命令常用来整理索引碎片。  这里需要注意的是,非常低的碎片级别(小于5%)不应通过这些命令来解决,因为删除如此少量的碎片所获得的收益始终远低于重新组织或重新生成索引的开销。1、DBCCDBREINDEX  DBCCDBREINDEX用于在指定的表上物理地重建一个或多个索引。DBCCDBREINDEX是离线操作方式。当该操作运行时,涉及到的表就无法被用户访问。  DBCCDBREINDEX动态地重建索引。没有必要知道参与重建的表结构到底如何,是否用主键或者唯一性约束等信息;重建的时候

5、会自动管理的。DBCCDBREINDEX完全重建索引,就是此过程中将删除碎片,通过使用指定的或现有的填充因子设置压缩页来回收磁盘空间,并在连续页中对索引行重新排序(根据需要分配新页)。这样可以减少获取所请求数据所需的页读取数,从而提高磁盘性能。从内部运行看,DBCCDBREINDEX和手工用T-SQL语句来运行删除然后重新创建索引十分相似。  下面两点是DBCCDBREINDEX比DBCCINDEXDEFRAG优越的地方:  DBCCDBREINDEX在重建索引过程中,自动重建统计;这将显著提高

6、工作性能。  DBCCDBREINDEX可以运行在多处理器环境下,利用多处理器的优势,当重建较大和碎片厉害的索引时,速度可以十分快。DBCCDBREINDEX的所有工作是一个单一的,原子事务。必须完成创建新的索引并替换旧索引,然后旧索引页被释放。完成重建需要数据文件中有足够的空余空间。如果空余空间不够,DBCCDBREINDEX要么无法重建索引,要么会产生大于0的逻辑碎片。所需空余空间视情况而定,取决于事务中要创建的索引数目。2、DBCCINDEXDEFRAG  DBCCINDEXDEFRAG用

7、于对指定的索引进行重建。和DBCCDBREINDEX类似,也不需顾及表的基础结构;不过,DBCCINDEXDEFRAG无法用一个语句对所有的索引进行重建。对于每个希望进行碎片整理的索引,都必须运行一次DBCCINDEXDEFRAG。  无论是DBCCDBREINDEX还是DBCCINDEXDEFRAG,都可以有效地整理索引碎片,并将页密度恢复到初始填充因子规定的页密度附近。基于这些结果,下面需要决定什么时候应用哪种整理方式。  如果允许有一段时间进行离线索引重建,DBCCDBREINDEX一般来

8、说比DBCCINDEXDEFRAG要快。DBCCDBREINDEX可以充分利用多处理器系统的平行性能。DBCCINDEXDEFRAG用于对生产环境干扰不大,对工作性能影响不大的场合。测试显示,即使同时几个DBCCINDEXDEFRAG并行工作,对性能下降的影响也从来不会超出10%。但是,这也同样使得DBCCINDEXDEFRAG针对较大的索引整理时,需要很长的时间才能完成。而且,工作时间的长短还依赖于当时在服务器上运行的访问工作。  3结论对于不同的工作类型,索引碎片整理具有十分不同的影响。某些

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。