1生成执行计划
预估执行计划 :每执行一次EXPLAIN PLAN,DB优化器(Optimizer)就会生成执行计划* 而不执行SQL * (因此叫“预估”),并写入PLAN_TABLE表中(Oracle默认使用PLAN_TABLE临时表来保存EXPLAIN PLAN的结果):
EXPLAIN PLAN SET STATEMENT_ID = 'statement1' --指定该条语句的statement_id,后续可用于查询PLAN_TABLE表中的执行计划 INTO my_plan_table --可以不使用默认的PLAN_TABLE而使用自定义表 FOR SELECT last_name FROM employees; --要分析的SQL语句。INSERT, UPDATE, SELECT和DELETE语句。
简单的使用
SYS@EMREP> explain plan for select * from t1; Explained. SYS@EMREP> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------------------------------------ Plan hash value: 3617692013 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 1 | 2028 | 2 (0)| 00:00:01 | | 1 | TABLE ACCESS FULL| T1 | 1 | 2028 | 2 (0)| 00:00:01 | -------------------------------------------------------------------------- Note ----- - dynamic sampling used for this statement (level=2) 12 rows selected. SYS@EMREP>
2 查询执行计划
由于实际执行计划要在执行SQL时才会生成,查看执行计划前,要先执行SQL。 也是一个Oracle自带的函数(点击链接查看详情),它可以展示已经加载到cache中的执行计划:
--不带选项,直接查询最后一条SQL的执行计划 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR()); --指定了sql_id和child_number,查询指定SQL的执行计划。 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('gwp663cqh5qbf',0)); ----------------------------------------------------------- --1.为了区别其他的SQL,需要在执行SQL的时候加入特殊标记的注释,比如: SELECT /* TOTO */ ename, dname FROM dept d join emp e USING (deptno); --2.通过SQL标记,查到sql_id和child_number。v$sql是一个系统视图,保存执行过的sql语句 SELECT sql_id, child_number FROM v$sql WHERE sql_text LIKE '%TOTO%'; SQL_ID CHILD_NUMBER ---------- ----------------------------- gwp663cqh5qbf 0 --3.再查询该SQL的执行计划 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('gwp663cqh5qbf',0)); select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));
3 sqlplus 配置自动查看
查看执行计划(不执行)
set auotrace traceonly
自动显示执行计划(执行后)
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
