Indexing 为什么在TopN查询场景中Oracle不使用索引?

Indexing 为什么在TopN查询场景中Oracle不使用索引?,indexing,oracle11g,Indexing,Oracle11g,想要从表5077913记录中获取最新的前5个交易日期 select trade_date from (select distinct trade_date from BOND_DAY_QUO order by trade_date desc) a where rownum <=5; 还有一个独特的索引:交易日期,债券ID 但是当我检查解释计划时,发现它没有使用这个索引,并进行了完整的表扫描 为什么不是完全索引扫描?您的交易日期列可以为空吗?@Boneist是,它可以为空,当添加查询条件

想要从表5077913记录中获取最新的前5个交易日期

select trade_date from (select distinct trade_date from BOND_DAY_QUO order by trade_date desc) a where rownum <=5;
还有一个独特的索引:交易日期,债券ID

但是当我检查解释计划时,发现它没有使用这个索引,并进行了完整的表扫描


为什么不是完全索引扫描?

您的交易日期列可以为空吗?@Boneist是,它可以为空,当添加查询条件时:如果交易日期不为空,它将更改为快速完全扫描