SQL Server 数据库的整理优化的基本过程(三)

SQL Server 数据库的整理优化的基本过程(三)

高建刚

 

第二节 索引

 

第三节 索引的维护

 

    数据库在进行数据的insert、update、delete时,引擎都会自动维护索引。随着时间的积累,这些操作会造成数据的不连续,即产生了索引的碎片,随着碎片的产生,从而降低了查询的性能,反映到前台程序中,就是用户体验效果差,整个系统运行速度慢。当这种情况出现时,我们就需要利用创建索引或重新组织索引来对索引进行维护,至于具体采用什么方式,需要结合索引产生碎片的严重程度。

    在此,需要提出的是,在SQL Server2005的DDL对维护索引增加了更丰富的语句,而以前的版本往往需要DBCC来处理,不仅仅理解起来比较费劲,更多的是不能从原理上来分析具体的原因。

    首先,让我们来看看如何查找数据不连续造成的索引碎片。

    数据的不连续主要分两种,一种是内部数据存储页的不连续,许多的空间没有记录数据;另一种是外部的硬盘存放数据的分页与范围不一致,即索引或数据表散落在多个范围中,或存放索引或数据表的分页不是连续的放在一起的,当然也有的情况是数据顺序与实例在硬盘存放的分页顺序不同,导致的硬盘读取没有效率,读出后数据还需要重新组织,重新整理。

    那么通过什么方式来查看索引的不连续程度哪?微软为我们提供了DBCC SHOWCOMFIG指示符,通过帮助我们发现其用法其实不是很复杂,而结果的表述也很容易理解。



DBCC SHOWCONTIG 
[ ( 
    { table_name | table_id | view_name | view_id } 
    [ ,index_name | index_id ] 
) ] 
    [ WITH 
        { 
         [ , [ ALL_INDEXES ] ] 
         [ , [ TABLERESULTS ] ] 
         [ , [ FAST ] ]
         [ , [ ALL_LEVELS ] ] 
         [ NO_INFOMSGS ]
         }
    ]
下班用例子来查看此指示符所呈现的数据:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值