【发布时间】:2010-09-08 06:12:45
【问题描述】:
我在 oracle 11g 中工作。并行执行时,ALTER INDEX REBUILD ONLINE 是否会使索引无效?
【问题讨论】:
我在 oracle 11g 中工作。并行执行时,ALTER INDEX REBUILD ONLINE 是否会使索引无效?
【问题讨论】:
新索引是并行构建的,在重建过程中旧索引仍然可用。但是,当将新索引换成旧索引时,会有一段时间(希望很短)两个索引都不可用。
来自http://www.oracle-base.com/articles/9i/HighAvailabilityEnhancements9i.php#OnlineIndexRebuilds:
当 ONLINE 关键字用作 CREATE 或 ALTER 语法的一部分 当前索引保持不变,而 建立索引的新副本, 允许 DML 访问旧索引。 对旧索引的任何更改都是 记录在索引组织表中 称为“日志表”。一旦 重建完成更改 从日志表合并到 新的索引。这可能需要几个 通过的频率取决于 指数的变化。过程 将跳过任何锁定的行并提交 每 20 行。一旦合并 操作完成数据 字典更新了,旧的 索引被删除。 DML 访问仅 在数据字典期间被阻止 更新,很快就完成了。
【讨论】:
我观看了使用 toad 进行的在线重建,并执行了使用指定索引的查询。
不要看到它变得无效。 也许在“新”索引被激活的确切时刻很短的时间内。 不过还没有找到任何关于它的文档。
【讨论】: