Oracle中SQL的性能优化
2014-01-08 09:38
471 查看
【IT168技术文档】1、用EXISTS替代IN,NOT EXISTS替代NOT IN: 在子查询中,NOT在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用EXISTS(或NOTEXISTS)通常将提高查询的效率.
2、用Where子句替换HAVING子句:
避免使用HAVING子句, HAVING只会在检索出所有记录之后才对结果集进行过滤.
这个处理需要排序,总计等操作.如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销.
例如:
低效:
高效
3、使用表的别名(Alias)
当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误.
4、用EXISTS替换DISTINCT
当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT.一般可以考虑用EXIST替换
例如:
低效:
高效:
低效:
高效
(高效,执行时间10.6秒)
8、计算记录条数 和一般的观点相反,
count(*) 比count(1)稍快 ,
当然如果可以通过索引检索,对索引列的计数仍旧是最快的. 例如 COUNT(EMPNO)
原文地址
SELECT AND EXISTS (SELECT ‘X' FROM DEPT WHERE DEPT.DEPTNO = EMP.DEPTNO
AND LOC = ‘MELB')
2、用Where子句替换HAVING子句:
避免使用HAVING子句, HAVING只会在检索出所有记录之后才对结果集进行过滤.
这个处理需要排序,总计等操作.如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销.
例如:
低效:
SELECT REGION,AVG(LOG_SIZE)FROM LOCATION
GROUP HAVING REGION REGION != ‘SYDNEY'
AND REGION != ‘PERTH'
高效
SELECT REGION,AVG(LOG_SIZE) FROM LOCATION
WHERE REGION REGION != ‘SYDNEYBY REGION
3、使用表的别名(Alias)
当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个Column上.这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误.
4、用EXISTS替换DISTINCT
当提交一个包含一对多表信息(比如部门表和雇员表)的查询时,避免在SELECT子句中使用DISTINCT.一般可以考虑用EXIST替换
例如:
低效:
SELECT FROM DEPT D,EMP E
WHERE D.DEPT_NO = E.DEPT_NO
高效:
SELECT DEPT_NO,DEPT_NAME FROM DEPT D WHERE 10 UNION
低效:
SELECT LOC_ID , LOC_DESC , REGION
FROM LOCATION WHERE LOC_ID = 10
OR LOC_ID = 30
高效
SELECT…
FROM LOCATION WHERE LOC_IN IN (AND JOB = ‘MANAGER'
AND 25 < (SELECT COUNT(*) FROM EMP WHERE MGR=E.EMPNO);
(高效,执行时间10.6秒)
SELECT … FROM EMP E WHERE 25 *) FROM EMP
WHERE MGR=E.EMPNO) AND JOB = ‘MANAGER';
8、计算记录条数 和一般的观点相反,
count(*) 比count(1)稍快 ,
当然如果可以通过索引检索,对索引列的计数仍旧是最快的. 例如 COUNT(EMPNO)
原文地址
相关文章推荐
- Oracle SQL性能优化的几个关键点
- oracle SQL性能优化大总结
- oracle SQL性能优化大总结
- Oracle SQL性能优化的40条军规
- Oracle SQL性能优化
- oracle性能优化sql注意
- Oracle SQL性能优化[转]
- Oracle SQL性能优化
- [转载]Oracle SQL性能优化
- Oracle SQL性能优化
- oracle SQL性能优化
- ORACLE SQL性能优化No3--ORACLE SQL性能优化系列
- Oracle SQL性能优化
- 【Oracle】--11s到4s的SQL性能优化实例
- Oracle SQL性能优化
- Oracle 的sql优化提高性能
- Oracle sql 性能优化调整
- [转]Oracle SQL性能优化技巧总结
- ORACLE性能优化之SQL语句优化
- SQL编程性能优化--ORACLE