SQL性能优化之一

1: 如果确定要用到删除全表 delete from tablename commit 这种方式是不可取的,因这样会产生大量的redo-log,一般建议用truncate或是临时表(这样可以告诉oracle是临时数据,不用记redo-log)

2:如果某一columns是number类型,但在where条件中把它隐式转换成string时就会影响速度,如果加了索引,也蒋会失效。

3:SQL在大数量查时,一个观点要窂记:能尽量过虑掉,窄小范围。

4:少用distict order by group by。

5:with 用法:得到的结果要多次使用

6:PL/SQL是在服务器运行,所有速度快,展示在前台。

7:分区的注意。

8:全是空值索引失效。

9:尽量用静态SQL语句,大量条件没有办法时才考虑用动态SQL:因为oracle要硬编译。

10:在有主健或是索引的时候count(1) ,count(*)是一个意思。

11:F5经常查看SQL执行计划。

12:如果有外健时一定要记得在子表上加一个索引。

13:减少commit的次数。

14:一般不用append

15:rownum:

select * from t_dd_batch where rownum<10 order by 1------------随时:先取数再排序.
select * from (select * from t_dd_batch order by 1) where rownum<10,先拓序,后在取数.

上面两句是两个完全不一样意思

原文地址:https://www.cnblogs.com/peter-peng/p/3572110.html