【问题标题】:Is there an advantage to using a local index on a partitioned table in Oracle?在 Oracle 中的分区表上使用本地索引是否有优势?
【发布时间】:2017-06-04 17:48:26
【问题描述】:

我认为在这种情况下答案是“否”,但我想我会问一下,看看我是否遗漏了什么:

我有一个 Oracle 表,它为便于数据加载而进行了分区——数据被加载到六个单独的表中,然后分区切换到主表中。这些加载表的唯一区别是数据的来源,因此每个表都有一个唯一的数据源列,用于对主表进行分区。我们偶尔会遇到一些在主表中查看此数据源的临时查询,但查询此表的标准报告完全忽略此列。没有任何东西可以从该表中插入/更新/删除单个记录,因此无需担心更新任何索引。

在这种情况下,是否有任何理由使用本地索引而不是全局索引?

【问题讨论】:

    标签: oracle indexing partitioning


    【解决方案1】:

    本地索引很有意义 - 如果您出于性能原因使用分区。

    如果您的查询始终包含分区键,那么 Oracle 将仅扫描该特定分区(即所谓的“分区修剪”)。

    如果您有其他条件可以从索引查找中受益,则数据库只需检查比全局索引小得多的本地索引,因此查找速度会更快。

    在您的情况下,如果您从不(或几乎从不)在查询中包含分区键,那么本地索引不会有帮助是对的。

    【讨论】:

    • 如果有很多分区,性能会变得更差,因为 Oracle 必须像处理单独的索引一样处理每个分区。
    猜你喜欢
    • 2014-11-24
    • 2012-03-23
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    相关资源
    最近更新 更多