• SQLServer数据库维护(一)碎片检查整理


    一、碎片查看维护

    dbcc showcontig('表名')
    dbcc showcontig ('T_NOFITSTUDY')

     结果如下:

    DBCC SHOWCONTIG 正在扫描 'T_NOFITSTUDY' 表...
    表: 'T_NOFITSTUDY' (2078630448);索引 ID: 1,数据库 ID: 7
    已执行 TABLE 级别的扫描。
    - 扫描页数................................: 1
    - 扫描区数..............................: 1
    - 区切换次数..............................: 0
    - 每个区的平均页数........................: 1.0
    - 扫描密度 [最佳计数:实际计数].......: 100.00% [1:1]
    - 逻辑扫描碎片 ..................: 0.00%
    - 区扫描碎片 ..................: 0.00%
    - 每页的平均可用字节数........................: 8094.0
    - 平均页密度(满).....................: 0.00%
    DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
    碎片处理的指标:
    ①如果逻辑扫描碎片超过20%就要对数据库进行处理
    ②扫描密度 [最佳计数:实际计数]如果小于80%就要对数据库进行碎片处理
    区扫描碎片超过20%


    对于碎片的解决办法

        基本上所有解决办法都是基于对索引的重建和整理,只是方式不同

        1.删除索引并重建

           这种方式并不好.在删除索引期间,索引不可用.会导致阻塞发生。而对于删除聚集索引,则会导致对应的非聚集索引重建两次(删除时重建,建立时再重建).虽然这种方法并不好,但是对于索引的整理最为有效

        2.使用DROP_EXISTING语句重建索引

           为了避免重建两次索引,使用DROP_EXISTING语句重建索引,因为这个语句是原子性的,不会导致非聚集索引重建两次,但同样的,这种方式也会造成阻塞

        3.使用ALTER INDEX REBUILD语句重建索引

           使用这个语句同样也是重建索引,但是通过动态重建索引而不需要卸载并重建索引.是优于前两种方法的,但依旧会造成阻塞。可以通过ONLINE关键字减少锁,但会造成重建时间加长.

        4.使用ALTER INDEX REORGANIZE

           这种方式不会重建索引,也不会生成新的页,仅仅是整理,当遇到加锁的页时跳过,所以不会造成阻塞。但同时,整理效果会差于前三种.

     







  • 相关阅读:
    基础排序算法之快速排序(Quick Sort)
    基础排序算法之并归排序(Merge Sort)
    Python中With的用法
    Python中AND-OR的用法
    注解/Annotation
    初识Angular2
    Angular 2 入门二
    Angular2 入门
    asp中将系统货币符号¥改为美国货币符号$的做法
    设计模式总结
  • 原文地址:https://www.cnblogs.com/mobilecard/p/7141231.html
Copyright © 2020-2023  润新知