1:现在有一个分区表   wzbm_xx  总共有180多万条数据 其中P60分区有33万条数据                  
2:INTER_WZBM_XX_IDX1是wzmc的索引                 
但是我在执行:  
select t.wzmc,t.wzbm from wzbm_xx partition(P60) t where t.wzmc like'中压手动球阀%'; 时, 
通过查看执行计划却发现没有利用索引。 
但是在执行如下sql时确利用了索引
select t.wzmc from wzbm_xx partition(P60) t where t.wzmc like'中压手动球阀%';
还有 就是 在上面的任意一个sql中添加order by 的话 速度就比原来慢了好多
不知道大家遇到过类似的问题吗?

解决方案 »

  1.   

    首先,
    wzmc上面有索引,所以下面的语句可以直接从索引上得到结果所以很快。
    select t.wzmc from wzbm_xx partition(P60) t where t.wzmc like'中压手动球阀%';select t.wzmc,t.wzbm from wzbm_xx partition(P60) t where t.wzmc like'中压手动球阀%'; 时, 
    通过查看执行计划却发现没有利用索引。 
    --可以强制使用索引来看看Explain Plan, 可能全表扫描更快。
    select /*+ index(table.indexname) */ columname from table
      

  2.   

    1:现在有一个分区表  wzbm_xx  总共有180多万条数据 其中P60分区有33万条数据                  
    2:INTER_WZBM_XX_IDX1是wzmc的索引                
    但是我在执行:  
    select t.wzmc,t.wzbm from wzbm_xx partition(P60) t where t.wzmc like'中压手动球阀%'; 时, 
    通过查看执行计划却发现没有利用索引。 
    但是在执行如下sql时确利用了索引 
    select t.wzmc from wzbm_xx partition(P60) t where t.wzmc like'中压手动球阀%'; 
    还有 就是 在上面的任意一个sql中添加order by 的话 速度就比原来慢了好多 
    不知道大家遇到过类似的问题吗?