alter index rebuild与alter index rebuild online的区别

转载 2013年12月02日 11:56:15
alter index rebuild online实质上是扫描表而不是扫描现有的索引块来实现索引的重建;在重建的过程中,允许对表做DML操作;花费的时间较长;

alter index rebuild 只扫描现有的索引块来实现索引的重建;在重建的过程中,不允许对表有任何DML操作;花费时间较短。

可以用10046事件来发现这个现象。

metalink Note:272762.1

Problem:
========
- Online Index rebuild takes a long time.
- ONLINE INDEX REBUILD SCANS THE BASE TABLE AND NOT THE INDEX

Symptoms:
=========
Performance issues while rebuilding very large indexes.
- The offline rebuilds of their index is relatively quick -finishes in 15 minutes.
- Issuing index rebuild ONLINE statement => finishes in about an hour.
- This behavior of ONLINE index rebuilds makes it a non-option for large tables
as it just takes too long to scan the table to rebuild the index. The
offline may not be feasible due to due to the 24/7 nature of the database.
- This may be a loss of functionality for such situations.
- If we attempt to simultaneously ONLINE rebuild the same indexes we may encounter
hanging behavior indefinitely (or more than 6 hours).

DIAGNOSTIC ANALYSIS:
--------------------
We can trace the sessions rebuilding the indexes with 10046 level 12.
Comparing the IO reads for the index-rebuild and the index-rebuild-online
reveals the following:

-ONLINE index rebuilds
It scans the base table and it doesn't scan the blocks of the index.

-OFFLINE index rebuilds
It scans the index for the build operation.

- This behaviour is across all versions.

Cause
Cause/Explanation
=============
When you rebuild index online,
- it will do a full tablescan on the base table.
- At the same time it will maintain a journal table for DML data, which has
changed during this index rebuilding operation.
So it should take longer time, specially if you do lots of DML on the same table,
while rebuilding index online.

On the other hand, while rebuilding the index without online option, Oracle will grab
the index in X-mode and rebuild a new index segment by selecting the data from
the old index. So here we are
- not allowing any DML on the table hence there is no journal table involved
- and it is doing an index scan
Hence it will be pretty fast.
Fix
Solution/Conclusion:
===========
- The ONLINE index rebuild reads the base table, and this is by design.
- Rebuilding index ONLINE is pretty slow.
- Rebuilding index offline is very fast, but it prevents any DML on the base table.

转alter index rebuild online引发的血案

‘早上起来没有一个人……‘,伸手抓起手机,‘喂,……应用hang住了……rac的一节点在手工shutdown……需要到现场……’。赶紧穿上衣服,拿起电脑往客户办公室赶。路上还接到客户电话具体描述了下故...
  • launch_225
  • launch_225
  • 2012年01月11日 14:28
  • 6674

oracle alter index rebuild online和alter index rebuild的区别

本文用10046事件来解析alter index rebuild与alter index rebuild online的区别 alter index rebuild online实质上是扫描...
  • u011823742
  • u011823742
  • 2014年06月24日 09:16
  • 1251

重建索引:ALTER INDEX..REBUILD ONLINE vs ALTER INDEX..REBUILD

什么时候需要重建索引参考自:深入理解重建索引(原创)1、 删除的空间没有重用,导致 索引出现碎片2、 删除大量的表数据后,空间没有重用,导致 索引"虚高"3、索引的 clustering_facto ...
  • pan_tian
  • pan_tian
  • 2015年06月19日 17:55
  • 3371

alter index rebuild 效率分析

原来是table和index建立在同一个tablespace,准备将index单独放在一个tablespace,与table分开。 测试: A: rebuild 时间:3.63 min alte...
  • cunxiyuan108
  • cunxiyuan108
  • 2014年01月03日 16:13
  • 1131

Oracle alter index rebuild 与 ORA-08104 说明

在ITPUB 论坛上看到的一个帖子,很不错。根据论坛的帖子重做整理了一下。 原文链接如下:       alter index rebuild online引发的血案       http://www...
  • tianlesoftware
  • tianlesoftware
  • 2011年06月12日 01:37
  • 14697

alter index rebuild & alter index rebuild online

来源:http://blog.chinaunix.net/uid-20274021-id-1969511.html
  • u011519658
  • u011519658
  • 2013年12月13日 18:17
  • 284

alter index index_name rebuild真能释放索引表空间吗?

1楼:  表中的数据每天晚上都要删除一部分(150万条左右),且表上建有主键索引。  当删除掉这些数据后,其所占的索引表空间并没有释放,于是使用了rebuild,  rebuild能释放空间吗?...
  • TechChan
  • TechChan
  • 2011年08月16日 23:19
  • 2643

alter index rebuild和alter index rebuild online的区别

SQL> explain plan for alter index t_index3 rebuild; 已解释。 SQL> select * from table(dbms_xplan.displ...
  • jienqiuqiu
  • jienqiuqiu
  • 2013年10月05日 11:52
  • 707

index rebuild和rebuild online的区别

1. rebuild 会阻塞dml语句而rebuild online则不会。          2. rebuild online时系统会产生一个SYS_JOURNAL_xxx的IOT类型的系统临时日...
  • guogang83
  • guogang83
  • 2014年09月01日 15:29
  • 1346

rebuild 分区索引

今天要做一个任务,rebuild 一个索引, 该索引建立在有11亿条数据的表上。 对于非组合分区索引,需要rebuild 每个分区(partition),不能直接rebuild整个索引, ...
  • robinson1988
  • robinson1988
  • 2010年07月14日 21:57
  • 6986
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:alter index rebuild与alter index rebuild online的区别
举报原因:
原因补充:

(最多只允许输入30个字)