Oracle查询优化最大聚合不使用索引

时间:2018-04-08 00:41:38

标签: oracle indexing query-optimization

我有一个表“AvoirStatuts”,其定义如下: enter image description here

这是另外两个表的关联表,外键是'num_compte'和'id_statut'

我有一个查询(我在这里创建了一个视图)来选择所有帐户的最新状态,如下所示:

  CREATE OR REPLACE FORCE VIEW "HR"."ETATACTUELCOMPTES"  
 ("id_statut", "num_compte") AS 
      select r2."id_statut",r2."num_compte" from 
            (
              select "num_compte",max("createdAt") createdAt 
              from "AvoirStatuts" 
              group by "num_compte"
            ) r1, "AvoirStatuts" r2 
            where 
               r1."num_compte"=r2."num_compte" 
               and r1.createdAt=r2."createdAt";

我想用索引加快这个查询,所以我创建了一个这样的索引

  create index creation_index on "AvoirStatuts" 
       ("num_compte","createdAt" desc );

但是查询没有使用那个索引我不知道为什么!

enter image description here

1 个答案:

答案 0 :(得分:1)

创建此索引:

create index covering_index on "AvoirStatuts" 
       ("num_compte","createdAt", "id_statut");