Oracle 索引和分区

Oracle Indexes and Partitioning

我正在确认是否对 Oracle 数据进行分区也会对减少用于索引的 space 总量产生影响。

我想如果有更多的 tablespaces 涉及,索引数据的大小应该减少以解决该数据,导致索引大小的减少大于减少数据大小。

但是,我找不到任何东西来证实这一点。现在,我没有分区许可证,我想将其用作成本合理性的一小部分(尽管性能是最大的)。

索引值包含实际值和始终为 10 字节的 ROWID。

我看不出分区 table 上的索引可能比普通 table 上的索引小的任何原因 - 除非您使用 Partial Indexes for Partitioned Tables

分区索引的总大小可以小于整个索引的大小,因为索引在其 B 树中的级别可能较少。

如果N是行数,p是分区数,那么消耗的索引space可以近似为:

未分区:N * [log N]

分区:p * N/p * [log N/p] = N * [log N/p]

[] 四舍五入到最接近的整数