EXPLAIN PLAN 是一个很好的分析SQL 语句的工具,它甚至可以在不执行SQL 的情况下分析语句. 通过分析,我们就可以知道Oracle 是怎么样连接表,使用什么方式扫描表(索引扫描或全表扫描)以及使用到的索引名称.你需要按照从里到外,从上到下的次序解读分析的结果. EXPLAIN PLAN 分析的结果是用缩进的格式排列的, 最内部的操作将被最先解读, 如果两个操作处于同一层中,带有最小操作号的将被首先执行.1,安装以sys用户执行创建脚本,脚本位于$ORACLE_HOME/rdbms/admin/utlxplan.sql。执行的方法,cp $ORACLE_HOME/rdbms/admin/utlxplan.sql /home/utlxplan.sql进入数据库中执行:@/home/utlxplan.sql执行完之后,数据库中会有个plan的表,用来存储分析的信息。2,使用语法:explain PLAN [ SET STATEMENT_ID [=] < string literal > ] [ INTO < table_name > ]FOR < sql_statement >其中:STATEMENT_ID:是一个唯一的字符串,把当前执行计划与存储在同一PLAN中的其它执行计划区别开来。TABLE_NAME:是plan表名,它结构如前所示,你可以任意设定这个名称。SQL_STATEMENT:是真正的要分析的SQL语句例如:explain plan set statement_id="T_TEST" for select * from t;分析:SQL>SELECT A.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID2 FROM PLAN_TABLE a3 WHERE STATEMENT_ID="T_TEST"4 ORDER BY Id;grant all on plan_table to public;#授权所有用户为了在sql*plus中使用autotrace。需要执行一下操作:要在数据库中建立一个角色plustrace,用sys用户运行脚本plustrce.sql来创建这个角色,这个脚本在目录 (UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%/sqlplus/admin)中;方法通ultxplain.sql一样。授权:将plustrace的权限授予需要autotrace的用户grant plustruce to public;启动关闭autotrace:set autotrace on/off;只显示执行计划set autotrace on explain;只显示统计信息:set autotrace on statistics;显示执行计划,屏蔽执行结果;set autotrace on traceonly;仅仅显示执行计划,屏蔽执行结果:set autotrace on traceonly explain;Ubuntu 10.10下Qt连接MySQL数据库Oracle RMAN 增量备份完整恢复测试相关资讯 Oracle教程
- Oracle中纯数字的varchar2类型和 (07/29/2015 07:20:43)
- Oracle教程:Oracle中查看DBLink密 (07/29/2015 07:16:55)
- [Oracle] SQL*Loader 详细使用教程 (08/11/2013 21:30:36)
| - Oracle教程:Oracle中kill死锁进程 (07/29/2015 07:18:28)
- Oracle教程:ORA-25153 临时表空间 (07/29/2015 07:13:37)
- Oracle教程之管理安全和资源 (04/08/2013 11:39:32)
|
本文评论 查看全部评论 (0)