快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

澳门新莆京app官网:Oracle Explain Plan总结(1)



1、EXPLAIN的应用

Oracle RDBMS履行每一条SQL语句,都必须颠末Oracle优化器的评估。以是,懂得优化器是若何选择(搜索)路径以及索引是若何被应用的,对优化SQL语句有很大年夜的赞助。Explain可以用来迅速方便地查出对付给定SQL语句中的查询数据是若何获得的即搜索路径(我们平日称为Access Path)。从而使我们选择最优的查询要领达到最大年夜的优化效果。

1.1 、安 装

要应用EXPLAIN首先要履行响应的脚本,创建出Explain_plan表。

详细脚本履行如下:

$ORACLE_HOME/rdbms/admin/utlxplan.sql (UNIX) 该脚本后会天生一个表这个法度榜样会创建一个名为plan_table的表。澳门新莆京app官网

1.2 、应用

老例应用语法:

explainPLAN[SETSTATEMENT_ID[=]][INTO]

FOR

此中:

STATEMENT_ID:是一个独一的字符串,把当前履行计划与存储在同一PLAN中的其它履行计划差别开来。

TABLE_NAME:是plan表名,它布局如前所示,你可以随意率性设定这个名称。

SQL_STATEMENT:是真正的SQL语句。 比如: SQL>explain plan set statement_id='T_TEST' for select * from t_test; SQL> Explained

履行下面语句可以查询到履行计划

SQL>SELECTA.OPERATION,OPTIONS,OBJECT_NAME,OBJECT_TYPE,ID,PARENT_ID

2FROMPLAN_TABLEa

3WHERESTATEMENT_ID='T_TEST'

4ORDERBYId;

也可以用这句话 select * from table(dbms_xplan.display); 可以把所有PLAN_TABLE里的数据列举出来。

2 、AUTOTRACE的应用措施

2.1、安装

用sys用户运行脚本ultxplan.sql

建立这个表的脚本是:(UNIX:$ORACLE_HOME/rdbms/admin, Windows:%ORACLE_HOME%rdbmsadmin)ultxplan.sql。

SQL> connect sys/sys@colm2 as sysdba;

SQL> @C:oracleora92rdbmsadminutlxplan.sql;

SQL> create public synonym plan_table for plan_table;--建立同义词

SQL> grant all on plan_table to public;--授权所有用户

要在数据库中建立一个角色plustrace,用sys用户运行脚本plustrce.sql来创建这个角色,这个脚本在目录(UNIX:$ORACLE_HOME/sqlplus/admin, Windows:%ORACLE_HOME%sqlplusadmin)中澳门新莆京app官网;

SQL> @C:oracleora92sqlplusadminplustrce.sql;

然后将角色plustrace赋予必要autotrace的用户;

SQL>grant plustrace to public;

颠末以上步骤的设置,就可以在sql*plus中应用autotrace了

2.2、 应用

应用起来异常方便,只要应用一条敕令就可以了

SQL>SET A澳门新莆京app官网UTOTRACE ON;

*autotrace功能只能在SQL*PLUS里应用

其他一些应用澳门新莆京app官网措施:

2.2.1、在SQLPLUS中获得语句总的履行光阴

SQL> set timing on;

2.2.2、只显示履行计划--(会同时履行语句获得结果)

SQL>set autotrace on explain

比如:

sql>selectcount(*)fromtest;

count(*)

-------------

4

Executionplan

----------------------------

0selectstatementptimitzer=choose(cost=3card=1)

10sort(aggregate)

21partitionrange(all)

32tableaccess(full)of't_test'(cost=3card=900)

2.2.3、只显示统计信息---(会同时履行语句获得结果)

SQL>set autotrace on statistics;

(备注:对付SYS用户,统计信息将会是0)

2.2.4、显示履行计划,樊篱履行结果--(但语句实质还履行的

SQL> set autotrace on traceonly;

(备注:同SET AUTOTRACE ON; 只不过不显示结果,显示计划和统计)

2.2.5、仅仅显示履行计划,樊篱其他统统结果--(语句照样履行了)

SQL>set autotrace on traceonly explain;

对付仅仅查看大年夜表的Explain Plan异常管用。

2.2.6、关闭

SQL>set autotrace off;

总结:SQLPLUS 下的自动显示功能,在看履行计划中其语句照样会被履行的。尤其在履行UPDATE/DELETE语句时请切切留意,ORACLE是先履行脚本同时显示履行计划的,纵然应用set au澳门新莆京app官网totrace on traceonly explain;

这个时刻保举应用EXPLAIN PLAN FOR来看或者PL/SQL等第三方对象

3、第三对象来看履行计划

假如在PL/SQL中应用选摘要查询语句显示履行计划,则只必要SQL WINDOWS 窗口里面输入要查询的SQL语句,然后选择按键F5或者在菜单TOOLS�D�D>Explain Plan 菜单按键就可以在履行计划窗口查看该语句的履行计划。

在TOAD语句中在履行当前的SQL窗口中选择下方的Explain PlanTAB页即可以查看要履行语句的履行计划信息。

4、限定

explain真正的独一的限定是用户不能去解释其它用户的表,视图,索引或其它类型,用户必须是所有被解释事物的所有者,假如不是所有者而只有select权限,explain会返回一个差错。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: