前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记录一则rebuild index消除索引碎片的效果

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

作者头像
Alfred Zhao
发布2022-05-06 15:16:02
2730
发布2022-05-06 15:16:02
举报

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

1. 重建索引

使用rebuild重建索引,因为是停产状态,无需加online选项:

代码语言:javascript
复制
--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.重建前后索引大小变化

比对重建前后索引的空间大小占用变化:

代码语言:javascript
复制
--重建前索引空间:
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倍左右的差距。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 重建索引
  • 2.重建前后索引大小变化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档