-
方法 使用 数据源
-
display explain 计划表
-
display_cursor real plan 库缓存中的游标缓存
-
display_awr history awr仓库基表wrh$sql_play
-
display_sqlset sql tuning set sql set视图
-
一.dbms_xplan.display
-
display函数返回存储在计划表中的执行计划,返回值为集合dbms_xplan_type_table实例。
-
注意:使用前把sqlplus的linesize参数的值调整到至少120.
-
语法:
-
select * from table(dbms_xplan.display('table_name','statement_id','format','filter_preds')) ;
-
参数:
-
1.table_name 指定计划表的名字,默认为plan_table
-
2.statement_id 指定sql的语句的名字,当sql语句explain plan执行时,此参数是可选的。默认为null,在使用默认值的情况下,
-
将显示最近插入计划表中的执行变化(如果没有指定filter_preds的参数)
-
3.format 指定输出内容,除了基本的basic,typical,serial,all和advanced,为了更好地控制,还有一些额外的修饰符可以添加在后面(alias,bytes等)
-
format参数的取值有:
-
3.1.basic 仅显示很少的信息,基本上只包含操作和操作的对象;
-
3.2.typical 显示大部分相关对象,基本上包含了除别名,提纲和字段投影外的所有对象
-
3.3.serial 和typical类似,只是并行操作没有显示出来
-
3.4.all 显示除了提纲外的所有信息
-
3.5.advanced 显示所有信息
-
4.filter_preds 指定在查询计划表时添加的一个约束,约束的内容是基于计划表中某个字段一个寻常的sql谓词(比如statement_id='xxx'),默认值是null。
-
如果使用默认值,将显示最近一条插入到计划表中的执行计划。
-
-
修饰符:
-
1.alias 控制包含查询块名和对象别名部分的显示
-
2.bytes 控制执行计划表中字段bytes的显示
-
3.cost 控制执行计划表中字段cost的显示
-
4.note 控制包含注意信息(note)部分的显示
-
5.outline 控制包含提纲(outline)部分的显示
-
6.parallel 控制并行处理信息的显示,尤其是执行计划表中字段TQ、IN-OUT、PQ Distrib的显示
-
7.partition 控制分区信息的显示,尤其是执行计划表中字段pstart和pstop的显示
-
8.peeked_binds 控制包含被窥视的绑定变量部分的显示,既然sql语句explain plan的当前实现不执行绑定变量窥视,这部分内容就不会显示
-
9.predicate 控制包含谓词filter和access部分的显示
-
10.projection 控制包含字段投影信息部分的显示
-
11.remote 控制远程执行的sql语句的显示
-
12.rows 控制执行计划表中字段rows的显示
-
举例如下:
-
SQL> explain plan for select count(*) from t1 ;
-
SQL> select * from table(dbms_xplan.display(null,null,'basic')) ;
-
-
二、dbms_xplan.display_cursor
-
显示存储在库缓存中的执行计划。
-
语法:
-
select * from table(dbms_xplan.display_cursor('sql_id',cursor_child_no,'format')) ;
-
参数:
-
1.sql_id 指定被返回执行计划的sql语句的父游标,默认值是null,如果使用了默认值,当前会话的最后一条sql语句的执行计划将被返回
-
2.cursor_child_no 指定父游标下子游标的序号,即指定被返回执行计划的sql语句的子游标,默认值是0。如果设定为null,sql_id所指父游标下所有子游标的执行计划都被返回
-
3.format 指定要显示哪些信息,默认值为typical,可用参数和display相同,此外,如果执行统计打开(参数statistics_level为all或sql语句使用了提示gather_plan_statistics),则可以显示更多的信息
-
foramt参数的修饰符
-
3.1 allstats 这是iostats+memstats的快捷方式
-
3.2 iostats 控制i/o统计的显示
-
3.3 last 显示所有执行计算过的统计,如果指定了这个值,只显示最后一次执行的统计信息
-
3.4 memstats 控制pga相关统计的显示
-
3.5 runstats_last 和iostats last相同,只能用于10gR1
-
3.6 runstats_tot 和iostats相同,只能用于10gR1
-
举例如下:
-
SQL> select count(*) from t1 ;
-
SQL> select sql_id,address,hash_value,plan_hash_value,child_number from v$sql where sql_text like 'select count(*) from t1%' and sql_text not like '%v$sql%';
-
SQL> select * from table(dbms_xplan.display_cursor('b73dhvfrh3ada',0,'advanced+allstats')) ;
-
-
三、dbms_xplan.display_awr
-
display_awr函数返回存储在awr中的执行计划,从10g起可用,返回值是集合dbms_xplan_type_table的一个实例
-
语法:
-
select * from table(dbms_xplan.display_awr('sql_id',plan_hash_value,db_id,'format')) ;
-
参数:
-
1.sql_id 指定被返回执行计划的sql语句的父游标,无默认值
-
2.plan_hash_value 指定被返回执行计划的sql语句的哈希值,默认值为null。如果使用了默认值,与sql_id参数指定的父游标相关的所有执行计划都会返回
-
3.db_id 指定被返回执行计划的sql语句所在的数据库,默认值为null,如果使用了默认值,则数据库为当前库
-
4.format 指定要显示那些信息,和display函数中的format有相同的函数,默认值为typical
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28878983/viewspace-2136047/
,如需转载,请注明出处,否则将追究法律责任。