【问题标题】:What is the best indices for a query with variable where clause带有变量 where 子句的查询的最佳索引是什么
【发布时间】:2016-03-19 12:06:39
【问题描述】:

我有一个查询,它总是在查询 where 子句(creation_date、expiry_date)中过滤结果,并结合无、任何或所有这些列(organization_id、user_id、status、transaction_id)。我可以用于此类查询的最佳索引是什么?

【问题讨论】:

    标签: database oracle indexing


    【解决方案1】:

    如果列creation_date、expiry_date 是稀疏的(唯一creation_date 或expiry_date 的数量或两者大致等于记录数),那么您可以在creation_date 或expiry_date 或两者上创建索引。

    我会推荐在creation_date 和expiry_date 上建立索引。因为组合将比单个列更稀疏。

    【讨论】:

    • 其他列呢
    • 您需要了解每个组合将返回的平均记录数。如果您继续添加索引,您的 DML 会变慢。正如我之前提到的,如果创建和到期日期的唯一值的数量几乎等于表中的记录总数,则不需要在索引中包含其他列或为其他列创建新列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多