Oracle 范围分区表上的索引重建最佳做法



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

在这种情况下,请提供您的建议或想法?

不需要重建

本地索引,这是本地索引的主要目的之一。

本地分区索引实际上为每个分区创建"子索引",因此可以独立于其他分区管理此类"子索引"。当您截断分区时,其所有本地索引也会被截断。

甲骨文文档:

"您不能截断索引分区。但是,如果本地索引 为表定义,更改表...凹陷分区 语句截断每个本地索引中的匹配分区。

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

最新更新