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将会更好的使用索引。
未完。。。