• 记录一则rebuild index消除索引碎片的效果


    背景:在一次某客户的停产维护中,有一项例行对大表rebuild索引的操作,本是按部就班的操作,其效果却出乎我的意料,大部分索引的效果前后都有4倍左右的变化,最大的那个索引前后居然差了7倍多,并且重建索引也没有用到压缩选项,这个与我之前的预期差距很大,化名记录下这个结果。

    1. 重建索引

    使用rebuild重建索引,因为是停产状态,无需加online选项:
    --rebuild index
    ALTER INDEX JINGYU.IDX_XXX_1
    REBUILD
    NOCOMPRESS
    PARALLEL 4
    TABLESPACE DBS_I_JINGYU
    STORAGE (INITIAL     64K);
    
    --noparallel
    alter index JINGYU.IDX_XXX_1 noparallel;   
    

    需要注意如果用到并行,结束后一定要记得取消并行度。

    2.重建前后索引大小变化

    比对重建前后索引的空间大小占用变化:
    --重建前索引空间:
    select owner, segment_name, bytes/1048576 "MB" from dba_segments where segment_name like 'IDX_XXX_1';
    
    OWNER                          SEGMENT_NAME                           MB
    ------------------------------ ------------------------------ ----------
    JINGYU                         IDX_XXX_1                      78749.125
    
    
    --重建后索引空间:
    select owner, segment_name, bytes/1048576 "MB" from dba_segments where segment_name like 'IDX_XXX_1';
    
    OWNER                          SEGMENT_NAME                           MB
    ------------------------------ ------------------------------ ----------
    JINGYU                         IDX_XXX_1                      10795.4375
    

    可以看到这个索引IDX_XXX_1从78749M变成了10795M,前后相差7倍之多,效果非常明显。其余大部分大表索引重建前后也有4倍左右的差距。

  • 相关阅读:
    网络流24题-运输问题
    ASP.NET API
    面向对象理解
    冒泡排序
    HTTP Header 缓存
    HTTP Header
    Flask学习笔记07之模板渲染
    Flask学习笔记06之@before_request请求之前执行
    Flask报错:AssertionError: View function mapping is overwriting an existing endpoint function: inner
    装饰器03之多个装饰器的执行顺序
  • 原文地址:https://www.cnblogs.com/jyzhao/p/9081711.html
Copyright © 2020-2023  润新知