1. 用EXPLAIN PLAN 分析SQL语句
    EXPLAIN PLAN 是一个很好的分析SQL语句的工具,它甚至可以在不执行SQL的情况下分析语句. 通过分析,我们就可以知道ORACLE是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称.你需要按照从里到外,从上到下的次序解读分析的结果. EXPLAIN PLAN分析的结果是用缩进的格式排列的,最内部的操作将被最先解读, 如果两个操作处于同一层中,带有最小操作号的将被首先执行.NESTED LOOP是少数不按照上述规则处理的操作, 正确的执行路径是检查对NESTED LOOP提供数据的操作,其中操作号最小的将被最先处理.

译者按: 通过实践, 感到还是用SQLPLUS中的SET TRACE 功能比较方便.
举例:
SQL> list
1 SELECT *
2 FROM dept, emp
3* WHERE emp.deptno = dept.deptno
SQL> set autotrace traceonly /traceonly 可以不显示执行结果/
SQL> /
14 rows selected.

Execution Plan

0 SELECT STATEMENT Optimizer=CHOOSE
1 0 NESTED LOOPS
2 1 TABLE ACCESS (FULL) OF 'EMP'
3 1 TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
4 3 INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)

Statistics

0 recursive calls
2 db block gets
30 consistent gets
0 physical reads
0 redo size
2598 bytes sent via SQL*Net to client
503 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
14 rows processed
通过以上分析,可以得出实际的执行步骤是:

  1. TABLE ACCESS (FULL) OF 'EMP'
  2. INDEX (UNIQUE SCAN) OF 'PK_DEPT' (UNIQUE)
  3. TABLE ACCESS (BY INDEX ROWID) OF 'DEPT'
  4. NESTED LOOPS (JOINING 1 AND 3)
    注: 目前许多第三方的工具如TOAD和ORACLE本身提供的工具如OMS的SQL Analyze都提供了极其方便的

EXPLAIN PLAN工具.也许喜欢图形化界面的朋友们可以选用它们.

SQL优化常用方法24相关推荐

  1. SQL优化常用方法41

    用UNION-ALL 替换UNION ( 如果有可能的话) 当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并, 然后在输出最终结果前进行排序. 如果用UN ...

  2. SQL优化常用方法31

    强制索引失效 如果两个或以上索引具有相同的等级,你可以强制命令ORACLE优化器使用其中的一个(通过它,检索出的记录 数量少) . 举例: SELECT ENAME FROM EMP WHERE EM ...

  3. SQL优化常用方法36

    用UNION替换OR (适用于索引列) 通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描. 注意,以上规则只针对多个索引列有效. 如果有colu ...

  4. SQL优化常用方法49

    优化GROUP BY 提高GROUP BY 语句的效率, 可以通过将不需要的记录在GROUP BY 之前过滤掉.下面两个查询返回相同结果但第二个明显就快了许多.低效: SELECT JOB , AVG ...

  5. SQL优化常用方法10

    删除重复记录 最高效的删除重复记录方法 ( 因为使用了ROWID) DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP ...

  6. SQL优化常用方法9

    整合简单,无关联的数据库访问 如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系) 例如: SELECT NAME FROM EMP WHERE EMP_NO = 1 ...

  7. SQL优化核心思想:或许你不知道的5条优化技巧

    点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书. --异步小编 随着系统的数据量逐年增加,并发量也成倍增长,SQL性能越来越成为IT系统 ...

  8. mysql io次数_MySQL_揭秘SQL优化技巧 改善数据库性能,优化目标   1、减少 IO 次数 - phpStudy...

    揭秘SQL优化技巧 改善数据库性能 优化目标 1.减少 IO 次数 IO永远是数据库最容易瓶颈的地方,这是由数据库的职责所决定的,大部分数据库操作中超过90%的时间都是 IO 操作所占用的,减少 IO ...

  9. MYSQL 优化常用方法

    1.选取最适用的字段属性  MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能, 我们可以将表中字段的宽度设 ...

最新文章

  1. Struts2用户输入验证(6)
  2. 量子计算机神器,量子计算技术再获神器 科学家开发出新的成像技术
  3. [CVPR2016]Learning Deep Feature Representations with Domain Guided Dropout for Person Re-id
  4. linux源代码安装程序
  5. 常青:小程序音视频能力再升级
  6. 会议交流 | DataFunCon 线上大会 - 知识图谱专题论坛
  7. Covariance and Contravariance in C#, Part One
  8. python结构体数组传出接收c动态库_使用Python向C语言的链接库传递数组、结构体、指针类型的数据...
  9. AI人工智能在自动写歌词软件的最新应用,AI机器人小芝
  10. java爬取京东评价_无需编程的爬虫 - 爬取京东的评论
  11. c语言 算术平均滤波法_算术平均滤波C程序
  12. 使用Go语言解析多点触摸协议(MIT)TypeB由ADB调试产生的数据
  13. 万年历程序中十二生肖排列顺序及算法
  14. mybatis <where> <choose>标签
  15. 在SQL server 2008 R2进行数据查询操作时提示 “对象名无效”的问题
  16. 【前端技术】一篇文章搞掂:JS
  17. 新神魔大陆服务器维护,《新神魔大陆》手游8月20日合服维护公告
  18. Echarts地图版块移动位置的解决方案
  19. 词向量经典模型:从word2vec、glove、ELMo到BERT
  20. Echart实现中国地图和地图打点

热门文章

  1. 又拍云再放大招,CDN同时支持HTTP/2和SPDY/3.1协议
  2. CentOS6.4安装nginx1.4
  3. 体验Office 2013预览版
  4. Linux-什么是二进制包,源码包,RPM包,软件仓库
  5. 数据库命名规则(转)
  6. mfschunkserver安装脚本
  7. javascript:document的属性和方法,title,innerHTML,
  8. 长短视频之争,长视频平台和短视频源码谁主沉浮?
  9. CDN-502 问题排查
  10. IIS访问共享文件详解