2021-10-25

1.sql语句尽量大写

oracle是先解析SQL语句,把小写的字母转换成大写的再执行。

2.尽量写表的别名

当在SQL语句中连接2个以上的表时, 使用表的别名并把别名前缀于每个列上。可以减少解析的时间并减少那些由列歧义引起的语法错误。
例:
SELECT T1.EMPNO,
            T1.ENAME,
           T2.DNAME,
           T1.DEPTNO   --这里不加别名会报错
      FROM EMP T1
      JOIN DEPT T2
        ON T1.DEPTNO=T2.DEPTNO

3.SELECT I子句中避免使用*

ORACLE在解析的过程中, 会将'*' 依次转换成所有的列名, 这个工作是通过查询数据字典完成的

4.避免使用耗费资源的操作

带有DISTINCT 、UNION、ORDER BY的SQL语句会启动SQL引擎执行
耗费资源的排序(SORT)功能。DISTINCT需要一次排序操作,而其他的至少需要执行两次排序。
通常,带有UNION的SQL语句都可以用其他方式重写。

5.优化GROUP BY

1.提高GROUP BY 语句的效率,可以通过将不需要的记录在GROUP BY之前过滤掉。
例:
低效: 
SELECT JOB,AVG(SAL) 
FROM EMP 
GROUP BY JOB 
HAVING JOB = 'CLERK' OR JOB = 'MANAGER';
高效: 
SELECT JOB,AVG(SAL) 
FROM EMP 
WHERE JOB = 'CLERK' OR JOB = 'MANAGER' 
GROUP BY JOB;

你可能感兴趣的:(2021-10-25)