最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle如何根据动态性能视图来查看某条SQL语句的执行计划

来源:动视网 责编:小采 时间:2020-11-09 11:30:52
文档

Oracle如何根据动态性能视图来查看某条SQL语句的执行计划

Oracle如何根据动态性能视图来查看某条SQL语句的执行计划:Oracle 如何根据动态性能视图来查看某条SQL语句的执行计划 1、授权某用户查看 sys.v$sql_plan 的权限 2、创建类plan_table的视图 SQL> create or replace view dynamic_plan_table 2 as 3 select rawtohex(addre
推荐度:
导读Oracle如何根据动态性能视图来查看某条SQL语句的执行计划:Oracle 如何根据动态性能视图来查看某条SQL语句的执行计划 1、授权某用户查看 sys.v$sql_plan 的权限 2、创建类plan_table的视图 SQL> create or replace view dynamic_plan_table 2 as 3 select rawtohex(addre


Oracle 如何根据动态性能视图来查看某条SQL语句的执行计划

1、授权某用户查看 sys.v$sql_plan 的权限

2、创建类plan_table的视图

SQL> create or replace view dynamic_plan_table
2 as
3 select rawtohex(address)|| '_' ||child_number statement_id,
4 sysdate timestamp,operation,options,object_node,
5 object_owner,object_name,0 object_instance,
6 optimizer,search_columns,id,parent_id,position,
7 cost,cardinality,bytes,other_tag,partition_start,
8 partition_stop,partition_id,other,distribution,
9 cpu_cost,io_cost,temp_space,access_predicates,
10 filter_predicates
11 from v$sql_plan;

视图已创建。

3、查看执行计划

SQL> select plan_table_output
2 from table(dbms_xplan.display
3 ('dynamic_plan_table',
4 (select rawtohex(address)||'_'||child_number x
5 from v$sql where sql_text=
6 'select * from user_tables'),
7 'serial'))
8 /

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------

------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)|
------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | | | 703 (100)|
|* 1 | HASH JOIN | | 2513 | 5700K| 703 (7)|
| 2 | FIXED TABLE FULL | X$KSPPCV | 100 | 196K| 0 (0)|
| 3 | MERGE JOIN CARTESIAN | | 2513 | 755K| 703 (7)|
|* 4 | HASH JOIN OUTER | | 2513 | 620K| 661 (1)|
|* 5 | HASH JOIN RIGHT OUTER | | 2513 | 547K| 473 (2)|
| 6 | TABLE ACCESS FULL | USER$ | 84 | 1428 | 3 (0)|

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
|* 7 | HASH JOIN OUTER | | 2513 | 505K| 470 (2)|
|* 8 | HASH JOIN | | 2513 | 485K| 415 (1)|
| 9 | TABLE ACCESS FULL | TS$ | 7 | 133 | 4 (0)|
|* 10 | HASH JOIN OUTER | | 2513 | 439K| 410 (1)|
| 11 | NESTED LOOPS | | 2485 | 325K| 352 (1)|
|* 12 | TABLE ACCESS FULL | OBJ$ | 3142 | 110K| 236 (2)|
|* 13 | TABLE ACCESS CLUSTER| TAB$ | 1 | 98 | 1 (0)|
|* 14 | INDEX UNIQUE SCAN | I_OBJ# | 1 | | 0 (0)|
| 15 | TABLE ACCESS FULL | SEG$ | 7092 | 311K| 58 (0)|
| 16 | INDEX FAST FULL SCAN | I_OBJ1 | 69116 | 539K| 54 (0)|
| 17 | INDEX FAST FULL SCAN | I_OBJ2 | 69116 | 2024K| 187 (0)|

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
| 18 | BUFFER SORT | | 1 | 55 | 516 (10)|
|* 19 | FIXED TABLE FULL | X$KSPPI | 1 | 55 | 0 (0)|
------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

1 - access("KSPPI"."INDX"="KSPPCV"."INDX")
4 - access("T"."BOBJ#"="CO"."OBJ#")
5 - access("CX"."OWNER#"="CU"."USER#")
7 - access("T"."DATAOBJ#"="CX"."OBJ#")

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
8 - access("T"."TS#"="TS"."TS#")
10 - access("T"."FILE#"="S"."FILE#" AND "T"."BLOCK#"="S"."BLOCK#" AND
"T"."TS#"="S"."TS#")
12 - filter(("O"."OWNER#"=USERENV('SCHEMAID') AND
BITAND("O"."FLAGS",128)=0))
13 - filter(BITAND("T"."PROPERTY",1)=0)
14 - access("O"."OBJ#"="T"."OBJ#")
19 - filter("KSPPI"."KSPPINM"='_dml_monitoring_enabled')

Note
-----

PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
- 'DYNAMIC_PLAN_TABLE' is old version

已选择45行。

文档

Oracle如何根据动态性能视图来查看某条SQL语句的执行计划

Oracle如何根据动态性能视图来查看某条SQL语句的执行计划:Oracle 如何根据动态性能视图来查看某条SQL语句的执行计划 1、授权某用户查看 sys.v$sql_plan 的权限 2、创建类plan_table的视图 SQL> create or replace view dynamic_plan_table 2 as 3 select rawtohex(addre
推荐度:
标签: 如何 怎么 sql
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top