1. 首页 > ITPUX技术网 > 正文

执行计划查看

测试1。。。查看已经运行完成的sql的执行计划
–创建测试表t2
SQL> create table t2 as select * from all_tables where 1=2;

Table created
做任意DML操作
SQL> insert into t2 select * from all_tables;

4688 rows inserted
SQL> commit;

Commit complete
SQL> update t2 set t2.owner = ‘YZM’ where rownum <=10; 10 rows updated SQL> commit;

Commit complete
select * from t2 where t2.owner = ‘YZM’;
–查找运行的sql的sql_id
SQL> select * from (select sql_text, sql_id,t.FIRST_LOAD_TIME
2 from v$sqlarea t order by t.FIRST_LOAD_TIME desc)
3 where rownum<=10 4 ; SQL_TEXT SQL_ID FIRST_LOAD_TIME -------------------------------------------------------------------------------- ------------- ---------------------------------------------------------------------------- SELECT /* OPT_DYN_SAMP */ /*+ ALL_ROWS IGNORE_WHERE_CLAUSE NO_PARALLEL(SAMPLESUB 5g5hh5331p9yr 2014-04-30/19:42:39 select * from t2 where t2.owner = 'YZM' 5cqmg9syj22s0 2014-04-30/19:42:39 update t2 set t2.owner = 'YZM' where rownum <=10 f33z1tvz2ykkb 2014-04-30/19:42:24 insert into WRI$_DBU_CPU_USAGE(dbid, version, timestamp, b84gb6u21n480 2014-04-30/19:42:14 update WRI$_DBU_CPU_USAGE_SAMPLE set last_sample_date = :bind1, last_sample_ 8mkxm7ur07za0 2014-04-30/19:42:14 select count(FA#) from SYS_FBA_TRACKEDTABLES where OBJ# = 79480 and DROPSCN = 0 43qxhrh2xpnzk 2014-04-30/19:40:48 select * from table(dbms_xplan.display_cursor('ffch5mjzrhzky')) 2ab3dnbc5dn55 2014-04-30/19:38:02 SELECT /*+ opt_param('parallel_execution_enabled', 'false') */ 80hn4z6ntjz13 2014-04-30/19:38:02 select /* EXEC_FROM_DBMS_XPLAN */ case when upper(sql_text) like '%DBMS_XPLAN%' c8gdf450u1t8b 2014-04-30/19:38:02 select * from (select sql_text, sql_id,t.FIRST_LOAD_TIME from v$sqlarea t ord 70fh742mwbadc 2014-04-30/19:36:47 10 rows selected --找出select * from t2 where t2.owner = 'YZM' 这条记录的SQL_ID '5cqmg9syj22s0',然后根据sql_id查找执行计划 select * from table(dbms_xplan.display_cursor('5cqmg9syj22s0')); SQL> select * from table(dbms_xplan.display_cursor(‘5cqmg9syj22s0’));

PLAN_TABLE_OUTPUT
——————————————————————————–
SQL_ID 5cqmg9syj22s0, child number 0
————————————-
select * from t2 where t2.owner = ‘YZM’
Plan hash value: 1513984157
————————————————————————–
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
————————————————————————–
| 0 | SELECT STATEMENT | | | | 68 (100)| |
|* 1 | TABLE ACCESS FULL| T2 | 3 | 1623 | 68 (0)| 00:00:01 |
————————————————————————–
Predicate Information (identified by operation id):
—————————————————
1 – filter(“T2”.”OWNER”=’YZM’)
Note
—–

PLAN_TABLE_OUTPUT
——————————————————————————–
– dynamic sampling used for this statement (level=2)

22 rows selected

–测试2 查看不在缓冲池的sql的执行计划
create table t1(a number);
在session1执行
begin
for i in 1..1000000 loop
insert into t1 values(i);
end loop;
end;
在session2查询
select * from (select sql_text, sql_id,t.FIRST_LOAD_TIME
from v$sqlarea t order by t.FIRST_LOAD_TIME desc)
where rownum<=10; 找到一条sql的sql_id select * from table(dbms_xplan.display_cursor('1143q48fq12gb')); 结果会提示: SQL_ID 1143q48fq12gb, child number 0 begin for i in 1..1000000 loop insert into t1 values(i); end loop; end; NOTE: cannot fetch plan for SQL_ID: 1143q48fq12gb, CHILD_NUMBER: 0 Please verify value of SQL_ID and CHILD_NUMBER; It could also be that the plan is no longer in cursor cache (check v$sql_plan) 测试3 --查看正在运行的sql的执行计划 create table t3 as select * from all_objects ; session1 --执行 为了保证执行时间够长,造笛卡尔积并排序 select * from t2,t3 order by t2.status; 在session2找出sql_id 并查看 select * from table(dbms_xplan.display_cursor('dn2a4r8gxpvt4')); SQL_ID dn2a4r8gxpvt4, child number 0 ------------------------------------- select * from t2,t3 order by t2.status Plan hash value: 3984566296 -------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time | -------------------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | | | | 63M(100)| | | 1 | SORT ORDER BY | | 310M| 202G| 215G| 63M (1)|211:07:20 | | 2 | MERGE JOIN CARTESIAN| | 310M| 202G| | 1471K (1)| 04:54:14 | | 3 | TABLE ACCESS FULL | T2 | 4965 | 2623K| | 69 (2)| 00:00:01 | | 4 | BUFFER SORT | | 62603 | 9659K| | 63M (1)|211:07:19 | | 5 | TABLE ACCESS FULL | T3 | 62603 | 9659K| | 296 (1)| 00:00:04 | -------------------------------------------------------------------------------------- Note ----- - dynamic sampling used for this statement (level=2)

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息