Oracle ->> Oracle下查看实际执行计划的方法
2015-07-09 21:12
639 查看
也许有很多种方法,这里只是书上学到的一种方法
with a as ( select grp_factor from (select distinct grp_factor from numbers where id < 10 order by grp_factor) t where rownum <= 5) select b.id, a.grp_factor from a cross apply(select id from (select id from numbers b where a.grp_factor = b.grp_factor order by id) t where rownum<=3)b --use v$sqlarea to find out your query by searching with key words. this might --take a little bit long. select sql_id, sql_text from v$sqlarea where sql_text like '%cross apply%'; --copy the sql_id and place in the first place of parameters in the --function "dbms_xplan.display_cursor" . in our case, it is 1gbpuv6zfq64s select * from table(dbms_xplan.display_cursor('1gbpuv6zfq64s',null,'typical')); SQL_ID 1gbpuv6zfq64s, child number 0 ------------------------------------- with a as ( select grp_factor from (select distinct grp_factor from numbers where id < 10 order by grp_factor) t where rownum <= 5) select b.id, a.grp_factor from a cross apply(select id from (select id from numbers b where a.grp_factor = b.grp_factor order by id) t where rownum<=3)b Plan hash value: 3737636938 ------------------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | | | 2 (100)| | | 1 | NESTED LOOPS | | 1 | 26 | 2 (0)| 00:00:01 | | 2 | VIEW | | 1 | 13 | 1 (0)| 00:00:01 | |* 3 | COUNT STOPKEY | | | | | | | 4 | VIEW | | 1 | 13 | 1 (0)| 00:00:01 | |* 5 | SORT UNIQUE STOPKEY | | 1 | 26 | 1 (0)| 00:00:01 | | 6 | TABLE ACCESS BY INDEX ROWID BATCHED| NUMBERS | 1 | 26 | 1 (0)| 00:00:01 | |* 7 | INDEX RANGE SCAN | SYS_C009920 | 1 | | 1 (0)| 00:00:01 | | 8 | VIEW | VW_LAT_A83890C2 | 1 | 13 | 1 (0)| 00:00:01 | |* 9 | COUNT STOPKEY | | | | | | | 10 | VIEW | | 1 | 13 | 1 (0)| 00:00:01 | |* 11 | TABLE ACCESS BY INDEX ROWID | NUMBERS | 1 | 26 | 1 (0)| 00:00:01 | | 12 | INDEX FULL SCAN | SYS_C009920 | 1 | | 1 (0)| 00:00:01 | ------------------------------------------------------------------------------------------------------------ Predicate Information (identified by operation id): --------------------------------------------------- 3 - filter(ROWNUM<=5) 5 - filter(ROWNUM<=5) 7 - access("ID"<10) 9 - filter(ROWNUM<=3) 11 - filter("A"."GRP_FACTOR"="B"."GRP_FACTOR") SQL_ID 1gbpuv6zfq64s, child number 1 ------------------------------------- with a as ( select grp_factor from (select distinct grp_factor from numbers where id < 10 order by grp_factor) t where rownum <= 5) select b.id, a.grp_factor from a cross apply(select id from (select id from numbers b where a.grp_factor = b.grp_factor order by id) t where rownum<=3)b Plan hash value: 3737636938 ------------------------------------------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | ------------------------------------------------------------------------------------------------------------
相关文章推荐
- oracle存储过程
- Oracle Partition 分区详细总结
- oracle中long和date的互换
- Oracle创建存储过程、创建函数、创建包
- Oracle中Union与Union All的区别(适用多个数据库)
- MYSQL 与 Oracle 之间的数据类型转换
- error LNK2019: 无法解析的外部符号 "public: virtual __thiscall oracle::occi::SQLException
- rhn-client-tools和oraclelinux-release-6:6Server-5.0.2.x86_64的异常
- oracle 一种从按照某个字段排序获取连续的区间值得存储过程写法
- oracle数据库版本查看
- oracle dmp导出
- 安装Oracle 11g client(32bit)错误分析(后续)
- Oracle 11g R2 安装教程
- oracle shutdown没有反应解决
- Oracle日期周详解IW
- oracle日志备份恢复
- oracle md5加密
- ORACLE TDE 透明数据加密技术
- Oracle 创建 DBLink 的方法
- Oracle错误IMP-00010: 不是有效的导出文件, 头部验证失败