网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle笔记.
.Oracle中压缩数据节省空间和提高.
.Oracle8i系统概述.
.简单介绍Oracle数据库去除别名的.
.关于数据库OPEN的深入探究.
.J2ME 带给移动支付的优势解析.
.Oracle监听器启动路径为空导致服.
.Linux Kernel核心中文手册(1).
.Linux平台数据库大比拚(1).
.Oracle数据库技术(41).
.Linux信号简介.
.Oracle9i初始化参数中文说明(12).
.Oracle LogMiner终结版.
.为什么编译的时候提示不支持Berk.
.Oracle数据库表与视图.
.Oracle中实现大量数据快速转移数.
.ORACLE数据库备份.
.Oracle 容灾复制解决方案分析Sha.
.通过意向锁多粒度封锁机制进行并.
.Oracle客户端文件打包.

ORACLE SQL性能优化系列 (七 )

发表日期:2008-2-9


Oracle SQL性能优化系列 (七 ) 
24. 用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工具.也许喜欢图形化界面的朋友们可以选用它们.
 
 

上一篇:ORACLE SQL性能优化系列 (六) 人气:975
下一篇:ORACLE SQL性能优化系列 (二) 人气:984
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐