display:显示最近执行的SQL语句的执行计划。 display_cursor:根据SQL语句的ID或哈希值以及子游标编号,显示特定的执行计划。 display_awr:根据SQL语句的ID,显示AWR(Automatic Workload Repository)中收集的执行计划。 三、DBMS_XPLAN的应用场景 使用display方法查看最近执行的SQL语句的执行计划 EXPLAIN PLAN FOR SELECT * ...
DBMS_XPLAN包是Oracle提供的一个用于展示执行计划的包。执行计划是数据库优化器根据SQL语句和数据库当前的状态生成的一个执行策略,它决定了SQL语句如何被数据库执行。DBMS_XPLAN包能够从库缓存、AWR(Automatic Workload Repository)以及用户定义的计划表中提取执行计划,并以易于理解的方式展示出来。 二、DBMS_XPLAN包的...
SQL>SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL)); 传递SQL_ID以及FORMAT参数给DISPLAY_CURSOR函数,并配合修饰符控制执行计划的输出,如下所示: SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR('315XAN8ZGVTBM',NULL,'ALL')); 利用STATISTICS_LEVEL或/+ GATHER_PLAN_STATISTICS/可以知道表访问的...
使用dbms_xplan.display_cursor(null,null,'ALLSTATS LAST')时,将sql_id和child_number设置成null,表示获取上一条执行语句的执行计划;注意上面的例子中一定要指定gather_plan_statistics提示或者手动设置数据库STATISTICS_LEVEL参数为ALL来使得其抓取行数据源的执行统计信息,这些信息包括行数,一直读取次数,物理读次数,物理...
四.通过dbms_xplan.display_cursor输入sql_id参数直接获取 从共享池获得sql_id select sql_id,sql_text from v$sql where sql_text like '%t1,t2%'; --或者通过其他方式获取到sql_id(比如awr) select * from table(dbms_xplan.display_cursor('&sq_id')); ...
SQL> select * from table(dbms_xplan.display_cursor('1p2fk2v00c865', 0, 'advanced')); 或 select * from table(dbms_xplan.display_cursor('3221627077', 0, 'advanced')); 就可以查出对应这条SQL的执行计划,内容同(2)中的'advanced',这就不展示了。
DBMS_XPLAN包中display_cursor函数不同于display函数,display_cursor用于显示SQL语句的真实的执行计划, 在大多数情况下,显示真实的执行计划有助于更好的分析SQL语句的全过程,尤其是运行此SQL语句实时的I/O开销。 通过对比预估的I/O与真实的I/O开销来判断SQL语句所存在问题,如缺少统计信息,SQL语句执行的次数,根据实际...
SQL> explain plan for select * from t; select * from table(dbms_xplan.display); 数据库参数属性 col PROPERTY_NAME format a25 col PROPERTY_VALUE format a30 col DESCRIPTION format a100 select * from database_properties; select * from v$version; ...
sqlplus中可以使用hint gather_plan_statistcis后,结合dbms_xplan.display_cursor查看实际执行计划。 但是plsql developer的编辑器中无法使用,可参考以下方法,替换游标test中的内容为实际sql,实现同样效果,在“输出”中查看结果 如果提示无权限需要授权 grant select on v_sql_plan to sysadm; grant select on v_sql...
一、display_cursor函数用法 1、display_cursor函数语法 DBMS_XPLAN.DISPLAY_CURSOR(sql_id IN VARCH...