oracle 优化sql,改写SQL使用索引

2025-05-24 06:52:36

*普通索引列ais not null按逻辑改为a>0或a>''*like操作改写*能用u荏鱿胫协nion all绝不用union,除非要去重*in操作虽然简单易懂,但oracle内部会转换为表连接查询,使用in会多一步转换操作,所以建议使用表关联查询*not in强烈建议使用not exists或(外连接+判断为空)*<>(不等于)操作不走索引,推荐a<>0改为(a>0 ora<0)a<>’’改为a>’’*提防隐式类型转换,oracle内部处理a=0与a=‘0’是完全不同的,甚至会导致不走索引,这个深有体会,最近一个项目就是这个隐式类型转换出了问题,导致速度很慢*如果要在索引列查询isnotnull条件,建议列加上is not null约束,默认值约束,createindexidx01_t_tab1ont_tab1(last_ddl_time,1);--加了个常量 *用合适的函数索引来避免看似无法避免的全表扫描,CREATEINDEXIDX02_T_TAB 1ONT_TAB1(reverse(object_name)) ,此外经常用到的函数索引还有,instr(),subs tr()等

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:40
  • 阅读量:42
  • 阅读量:70
  • 阅读量:51
  • 阅读量:44
  • 猜你喜欢