签到成功

知道了

CNDBA社区CNDBA社区

重建索引:ALTER INDEX..REBUILD ONLINE

2022-04-29 12:57 2199 0 原创 oracle
作者: hbhe0316

什么时候需要重建索引
1、 删除的空间没有重用,导致 索引出现碎片
2、 删除大量的表数据后,空间没有重用,导致 索引”虚高”
3、索引的 clustering_facto 和表不一致
也有人认为当索引树高度超过4的时候需要进行重建,但是如果表数量级较大,自然就不会有较高的树,而且重建不会改变索引树高度,除非是由于大量引起的索引树“虚高”,重建才会改善性能,当然这又回到了索引碎片的问题上了。

SQL> INSERT INTO T1 SELECT * FROM T11;

30100005 rows created.

SQL> CREATE index t1_index on T1 (id);

SQL> SELECT t.owner, t.segment_name,SUM(bytes)/1024/1024 From dba_segments t 
WHERE t.tablespace_name = 'SYSTEM' and segment_name ='T1_INDEX'
GROUP BY t.owner,t.segment_name
ORDER BY SUM(bytes) desc;

http://www.cndba.cn/hbhe0316/article/107959http://www.cndba.cn/hbhe0316/article/107959

delete table后

http://www.cndba.cn/hbhe0316/article/107959

SQL> DELETE FROM T1;

30100005 rows deleted.

查看索引大小,发现未变化。

http://www.cndba.cn/hbhe0316/article/107959
http://www.cndba.cn/hbhe0316/article/107959
http://www.cndba.cn/hbhe0316/article/107959

使用alter index rebuild online命令重建索引http://www.cndba.cn/hbhe0316/article/107959http://www.cndba.cn/hbhe0316/article/107959

SQL> alter index T1_INDEX rebuild online;

Index altered.

http://www.cndba.cn/hbhe0316/article/107959http://www.cndba.cn/hbhe0316/article/107959

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:1154207次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ