Oracle一个表TABLE有A,B,C,D,E字段,有个SQL,用到了WHERE A=:a and B=:b and C=:c and D=:d,还有一个SQL用到了WHERE A=:a and B=:b and C=:c and D=:d and E=:e,如果只建立一个(A,B,C,D)的复合索引,我看到执行计划是:
1 - filter("TABLE"."E"='02')
2 - access("TABLE"."A"='1' AND "TABLE"."B"='1309' AND
           "TABLE"."C"='01SEP10' AND "TABLE"."D"='D')如果建立(A,B,C,D,E)的复合索引,则执行计划:
2 - access("TABLE"."A"='1' AND "TABLE"."B"='1309' AND
           "TABLE"."C"='01SEP10' AND "TABLE"."D"='D' AND "TABLE"."E"='e')问题:
1、如果仅建立(A,B,C,D,E)的索引,那仅使用A,B,C,D四个做WHERE条件的SQL也可以使用索引?
2、如果仅建立(A,B,C,D)的索引,那使用A,B,C,D,E五个做WHERE条件的SQL执行计划有1 - filter和2 - access,是否用索引了呢?
3、没必要建立(A,B,C,D,E)和(A,B,C,D)两个复合索引?注:这个表的DDL操作:INSERT以及每天夜维执行一次DELETE操作。谢谢!