一、DBMS_XPLAN的历史背景 DBMS_XPLAN最初在Oracle 9i版本中引入,作为utlxpls.sql脚本和自定义查询计划表的替代品。随着Oracle版本的升级,DBMS_XPLAN的功能也得到了增强。现在,它已经成为查看和解析Oracle执行计划的重要工具。 二、DBMS_XPLAN的功能 DBMS_XPLAN包提供了多种方法来查看和解析执行计划,主要包括: display...
使用dbms_xplan.display_cursor(null,null,'ALLSTATS LAST')时,将sql_id和child_number设置成null,表示获取上一条执行语句的执行计划;注意上面的例子中一定要指定gather_plan_statistics提示或者手动设置数据库STATISTICS_LEVEL参数为ALL来使得其抓取行数据源的执行统计信息,这些信息包括行数,一直读取次数,物理读次数,物理...
CREATE VIEW PLAN AS SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); SELECT * FROM PLAN; 这样每次都可以方便得渠道最新的一个执行计划 看一下自带说明: --- create or replace package sys.dbms_xplan AUTHID CURRENT_USER as --- --- --- DBMS_XPLAN CONSTANTS SECTION --- ---...
Oracle dbms_xplan包简介 一. 用途介绍 dbms_xplan包用于展示执行计划。执行计划存储在计划表中,库缓存中和AWR中,dbms_xplan包能从这些地方将执行计划取出,格式化之后展示给我们。 二. dbms_xplan输出 dbms_xplan的输出就是执行计划的信息,从上往下看一般是这样的: 第一部分: SQL_ID:识别父游标 child number:这个...
普通用户使用dbms_xplan包查看执行计划需要对v$sql、v$sql_plan、v$session及v$sql_plan_statistics_all这四个视图同时具有select权限。 如果普通用户没有以上权限,执行SQL>select * from table(dbms_xplan.display_cursor(null,null,'advanced'));会报错如下: ...
dbms_xplan dbms_xplan下面有很多函数可以调用,其中最常用的是display_cursor和display_awr函数。查看SQL的执行计划,SQL会真实执行,这种方法查看的执行计划有Predicate Information,无Statistics,查看的执行计划是准确的,并且有每一步真实处理行数和时间。 --查询sql_id ...
上例中使⽤了dbms_xplan.display⽅法来显⽰PLAN_TABLE中保存的解释计划,如果想要显⽰执⾏计划,就需要使⽤到DMBS_XPLAN.DISPLAY_CURSOR⽅法了,DMBS_XPLAN.DISPLAY_CURSOR调⽤签名:复制代码代码如下:DBMS_XPLAN.DISPLAY_CURSOR(sql_id IN VARCHAR2 DEFAULT NULL,child_number IN NUMBER ...
DBMS_XPLAN包中display_cursor函数不同于display函数,display_cursor用于显示SQL语句的真实的执行计划,在大多数情况下,显示真实的执行计划有助于更好的分析SQL语句的全过程,尤其是运行此SQL语句实时的I/O开销。通过对比预估的I/O与真实的I/O开销来判断SQL语句所存在问题
在PLSQL Developer里使用dbms_xplan.display_cursor查看SQL实际执行计划 sqlplus中可以使用hint gather_plan_statistcis后,结合dbms_xplan.display_cursor查看实际执行计划。 但是plsql developer的编辑器中无法使用,可参考以下方法,替换游标test中的内容为实际sql,实现同样效果,在“输出”中查看结果 ...
(2)使用DBMS_XPLAN包; (3)SQLPLUS中的AUTOTRACE开关 (4) 10046事件 (5)10053事件 (6)AWR报告或者Statsoack报告 (7)一些现成的脚本(如display_cursor_9i.sql) 一,explain plan命令 对于初学者来说,一般在得到sql执行计划的时候,往往会直接在PL/SQL Developver中直接使用快捷键F5,我开始也是这么做的。