有一个表A,主键是受诊年月和诊单号 ,其中根据受诊年月建立了partition.这个表中有一个字段,诊疗编号,有一个非聚集索引。现在我跑下面SQL文时,执行计划只有Partition List 没有用诊疗编号的索引,难道有Partition 就会忽略索引?
Select 受诊年月,诊单号 FROM A where 受诊年月 between ... And ...
and 诊疗编号=....
对了,诊疗编号是数值型,等号右边也是数值,所以不会禁用索引
Select 受诊年月,诊单号 FROM A where 受诊年月 between ... And ...
and 诊疗编号=....
对了,诊疗编号是数值型,等号右边也是数值,所以不会禁用索引
受诊年月 between ... And ...会导致全表扫描!
SQL> create index idx_l_no on 表A(诊疗编号) local;
建立完成后,搜集统计信息
SQL> exec dbms_stats.gather_index_stats('用户名','idx_l_no');
不过很疑惑为什么我写了hint句还是被Oracle抛弃
并不是说选择性>8%或>10%就一定不用索引,ORACLE基于成本的优化一切以
统计数据来计算COST!
另外,可以贴上HINT来看一下,是否写法有问题