zoukankan      html  css  js  c++  java
  • 维护索引——通过重组索引提高性能

    前言:

    如果碎片程度小于30%,建议使用重组而不是重建。因为重组不会锁住数据页或者数据表,并且降低CPU的资源。

    总得来说,重组会清空当前的B-TREE,特别是索引的叶子节点,重组数据页和消除碎片。和重建不同,重组不会添加任何新数据页。

    准备工作:

    为了了解是否有必要重组索引,需要首先查看碎片程度,如果在10%以下,那一般没必要做什么维护,如果在10%~30%,就建议进行重组。

    步骤:

    1、 以下各种重组索引的方法: 

     
    1. --不指定参数重组索引:  
    2. ALTER INDEX [idx_refno] ON [ordDemo]  
    3. REORGANIZE  
    4. GO  
    5.   
    6. --重组表中所有索引:  
    7. ALTER INDEX ALL ON [ordDemo]  
    8. REORGANIZE  
    9. GO  
    10.   
    11. --使用DBCC INDEXDEFRAG重建表上所有索引:  
    12. DBCC INDEXDEFRAG('AdventureWorks','ordDemo')  
    13. GO  
    14.   
    15. --使用DBCC INDEXDEFRAG重组表上一个索引:  
    16. DBCC INDEXDEFRAG('AdventureWorks','ordDemo','idx_refno')  
    17. GO  




    2、 DBCC INDEXDEFRAG命令同样是后续不建议继续使用的命令。 

    分析:

    索引重组,也可以称为碎片重组,对单独索引的操作将使用单独的线程。不可以并行操作。所以同一时刻只有一个索引被操作。

    重组并不产生新页,但是会压缩页,如果页面已经为空,将会移除这个页,所以填充因子选项是不需要的。同时,因为它不会锁住对象,所以总是联机处理。

    重组同样需要sysadmin、db_onwer、db_ddladmin角色。

  • 相关阅读:
    开始我的博客园
    科技生态链
    程式建议
    如何自动识别判断url中的中文参数是GB2312还是Utf-8编码?
    jquery.cookie 使用方法
    数据结构(Java)——查找和排序(5)
    数据结构(Java)——查找和排序(4)
    数据结构(Java)——查找和排序(3)
    数据结构(Java)——查找和排序(2)
    数据结构(Java)——查找和排序(1)
  • 原文地址:https://www.cnblogs.com/ShaYeBlog/p/5474652.html
Copyright © 2011-2022 走看看