当前位置: 代码迷 >> Oracle开发 >> 关于oracle数据库目录 in 和日期
  详细解决方案

关于oracle数据库目录 in 和日期

热度:16   发布时间:2016-04-24 06:42:55.0
关于oracle数据库索引 in 和日期

执行sql如下:
 select *
 from lm3.cc03
 where aae017 in (
 select distinct natl.jgid
 from be3.agency_natl natl,
 be3.agency_config conf
 where natl.jgid = conf.jgid
 and conf.ywlb = '02'
 start with natl.jgid = '37100106'
 connect by prior conf.jgid = conf.sjjgid
 )
 and aae036 >= to_date('20130101', 'yyyyMMdd')

lm3.cc03表中有aae017和aae036 的组合索引,也有aae036 的单独索引。
 但是执行以上sql时,lm3.cc03检索用不上索引,为什么?
 哪位大侠给指导一下,谢谢!
------解决方案--------------------
用不上索引可能性很多。
1、aae036 >= to_date('20130101', 'yyyyMMdd') 是否范围过大了。现在是2014年呀。
2、aae017 in 是不是很多,占有比例很大
3、当然还有其他原因:类型是否匹配。是否分析过表等等
4、先缩小范围。再说用哪个索引的问题:这两个索引,应该会有时oracle整不明白。你看看能否缩成一个。
联合索引,以036为第一个列
  相关解决方案