Database 使用变量where子句的查询的最佳索引是什么

Database 使用变量where子句的查询的最佳索引是什么,database,oracle,indexing,Database,Oracle,Indexing,我有一个查询,它总是使用查询where子句(创建日期、到期日期)中的这些列以及none、任何或所有这些列(组织id、用户id、状态、事务id)来过滤结果。对于这种查询,我可以使用的最佳索引是什么?如果列creation\u date、expiration\u date是稀疏的(唯一的creation\u date或expiration\u date或两者的数量大约等于记录的数量),那么您可以在creation\u date或expiration\u date或两者都创建索引 我将推荐关于创建日期

我有一个查询,它总是使用查询where子句(创建日期、到期日期)中的这些列以及none、任何或所有这些列(组织id、用户id、状态、事务id)来过滤结果。对于这种查询,我可以使用的最佳索引是什么?

如果列creation\u date、expiration\u date是稀疏的(唯一的creation\u date或expiration\u date或两者的数量大约等于记录的数量),那么您可以在creation\u date或expiration\u date或两者都创建索引


我将推荐关于创建日期和到期日期的索引。因为组合将比单个列稀疏。

其他列如何您需要了解每个组合将返回的平均记录数。如果您继续添加索引,您的DML将变慢。正如我前面提到的,如果creation和expiration date的唯一值的数量几乎等于表中记录的总数,则不需要在索引中包含其他列或为其他列创建新列。