Oracle SQL 语句优化

SQL语句整理而来,用来分享。现指针对Oracle其它数据库并不通用。

1:避免在WHERE 条件后面对字段施以函数

eg:select selectField

      from tableName t

where to_char(t.conditionFileld,'yyyy-MM-dd')='2012-06-02' ;

     而应该修改为;

   select selectField
      from tableName t

where t.conditionFileld>=to_date('2012-06-02','yyyy-MM-dd')  and  t.conditionFileld<to_date('2012-06-03','yyyy-MM-dd');

2:查询返回尽量少的字段,select 后面不要连接*。

3:尽量消除排序操作(如果可以的前提下)

排序操作是非常昂贵的。可以不使用order by,group by 的地方,尽量不要使用。同时如果可以使用union all,那么就应该尽量不使用union 操作。因为union操作会把连接2张表分别进行排序以后将重复的记录剔除然后输出,而union all就不会,也不会重复记录消除。

4:使用not exists来代替not in。

说明:使用not exists,ORACLE将会更好的使用索引。

未完。。。

原文地址:https://www.cnblogs.com/huangzhijun/p/2532114.html