• 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 ]
             }
        ]
    下班用例子来查看此指示符所呈现的数据:
  • 相关阅读:
    04-Bootstrap的插件
    03-Bootstrap学习
    02-移动端单位介绍
    01 响应式页面-@media介绍,
    14-jQuery补充
    13-jQuery的ajax
    12-事件委托(事件代理)
    11-jQuery的事件绑定和解绑
    10-事件对象
    09-JS的事件流的概念(重点)
  • 原文地址:https://www.cnblogs.com/Gaojier/p/2783525.html
Copyright © 2020-2023  润新知