查看带有A-TIME的执行计划
查看带有A-TIME的执行计划的用法如下。
alter session set statistics_level=all;
或者在SQL语句中添加hint:/+ gather_plan_statistics /
运行完SQL语句,然后执行下面的查询语句就可以获取带有A-TIME的执行计划。
select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));
示例(Oracle11gR2,Scott账户)如下。
SQL> select /*+ gather_plan_statistics full(test) */ count(*) from test where owner='SYS';
COUNT(*)
----------
30808
SQL> select * from table(dbms_xplan.display_cursor(null,null,'allstats last'));
PLAN_TABLE_OUTPUT
-------------------------------------------------------------------------------------
SQL_ID fswg73p1zmvqu, child number 0
-------------------------------------
select /*+ gather_plan_statistics full(test) */ count(*) from test
where owner='SYS'
Plan hash value: 1950795681
-------------------------------------------------------------------------------------
| Id |Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads |
-------------------------------------------------------------------------------------
| 0 |SELECT STATEMENT | | 1 | | 1 |00:00:00.03 | 1037 | 1033 |
| 1 | SORT AGGREGATE | | 1 | 1 | 1 |00:00:00.03 | 1037 | 1033 |
|* 2 | TABLE ACCESS FULL| TEST | 1 | 2518 | 30808 |00:00:00.01 | 1037 | 1033 |
-------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - filter("OWNER"='SYS')
20 rows selected.
Starts表示这个操作执行的次数。
E-Rows表示优化器估算的行数,就是普通执行计划中的Rows。
A-Rows表示真实的行数。
A-Time表示累加的总时间。与普通执行计划不同的是,普通执行计划中的Time是假的,而A-Time是真实的。
Buffers表示累加的逻辑读。
Reads表示累加的物理读。
评论已关闭