Oracle中SQL的性能优化
2023-09-14 09:03:16 时间
【IT168技术文档】1、用EXISTS替代IN,NOT EXISTS替代NOT IN: 在子查询中,NOT在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用EXISTS(或NOTEXISTS)通常将提高查询的效率.
SELECT AND EXISTS (SELECT ‘X FROM DEPT WHERE DEPT.DEPTN
【IT168技术文档】1、用EXISTS替代IN,NOT EXISTS替代NOT IN: 在子查询中,NOT在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用EXISTS(或NOTEXISTS)通常将提高查询的效率.
避免使用HAVING子句, HAVING只会在检索出所有记录之后才对结果集进行过滤. 这个处理需要排序,总计等操作.如果能通过WHERE子句限制记录的数目,那就能减少这方面的开销.
例如:
低效:
例如: 低效:
Oracle SQL性能优化40条,值得收藏(二) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
Oracle SQL性能优化40条,值得收藏(五) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
Oracle SQL性能优化40条,值得收藏(四) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
Oracle SQL性能优化40条,值得收藏(一) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
Oracle SQL性能优化40条,值得收藏(三) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
【IT168技术文档】1、用EXISTS替代IN,NOT EXISTS替代NOT IN: 在子查询中,NOT在许多基于基础表的查询中,为了满足一个条件,往往需要对另一个表进行联接.在这种情况下,使用EXISTS(或NOTEXISTS)通常将提高查询的效率.
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 REGION3、使用表的别名(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性能优化40条,值得收藏(二) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
Oracle SQL性能优化40条,值得收藏(五) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
Oracle SQL性能优化40条,值得收藏(四) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
Oracle SQL性能优化40条,值得收藏(一) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
Oracle SQL性能优化40条,值得收藏(三) 之前有发布一些Mysql的性能优化方法,有些小伙伴想了解一下Oracle的性能优化有哪些,特地去找了一些比较全和实用的文章,这篇就是其中一篇。对Oracle性能优化感兴趣的不妨收藏一些,以备不时之需。(部分内容存在错别字和技术性错误,有改动)
相关文章
- Java 存储和读取 oracle CLOB 类型字段的实用方法
- 问题-Delphi为什么不能连接oracle
- 在 linux 上运行 oracle sql脚本
- Oracle 查询并删除重复记录的SQL语句
- oracle中查找执行效率低下的SQL
- Oracle创建表空间、创建用户以及授权、查看权限
- Oracle 11g R2 RAC高可用连接特性 – SCAN详解1
- oracle事务内部原理
- Tools - Oracle SQL Developer
- oracle安装数据库中文乱码解决办法
- Oracle Install logs
- oracle与sql server大批量存储过程可以替换部分
- oracle 慢查询
- Oracle迁移到PPAS(PostgreSQL)时的日期计算问题
- Oracle与Sql Server差异点详解
- Oracle中SQL的性能优化
- ORACLE 从一个实例迁移到另外一个实例实战记录
- 卸载了PL/SQL Developer,说一下与Toad for Oracle的对照
- 【大数据开发运维解决方案】linux5 安装 oracle 11g(11.2.0.4)实验
- Oracle RAC部署规划
- Oracle SQL是关于集合的
- 解密 Oracle 数据库 SQL 执行历史:掌握多种实现方式,轻松实现 SQL 监控与性能优化
- Oracle的学习心得和知识总结(十二)|Oracle数据库Real Application Testing之SQL Performance Analyzer实操(一)