索引重建Oracle范围分区表的最佳实践

时间:2016-03-09 15:43:11

标签: sql oracle indexing

我们有一个范围分区表和该表的大约10个位图本地索引。我们在日常负载中对该表执行一些ddl / dml操作,这会截断特定分区并加载数据。当我们这样做时,本地位图索引不会变得不可用。它们处于可用状态。但是,我的问题是,即使索引没有变得无法使用,我们是否总是需要将索引重建作为范围分区表的最佳实践的一部分,或者仅在需要时才使用索引重建?因为索引重建需要时间,假设我们在该表上有10个本地索引,这些索引具有大量,那么它对于etl来说变成了昂贵的事情。

请在这种情况下向我提出您的建议或想法?

2 个答案:

答案 0 :(得分:0)

不需要重建本地索引,这是本地索引的主要目的之一。

答案 1 :(得分:0)

本地分区索引实际上创建了' sub index'对于每个分区,所以这样的子索引'可以独立于其他分区进行管理。当你截断分区时,它的所有本地索引都会被截断。

Oracle doc

  

"您无法截断索引分区。但是,如果是本地索引   为表定义,ALTER TABLE ... TRUNCATE PARTITION   statement会截断每个本地索引中的匹配分区。"

因此,当您将数据加载到该分区时,它会重新创建本地索引。但该指数的统计数据可能是错误的,优化者可以考虑不使用指数。因此,如果您不这样做,请考虑从这些索引中收集统计数据。