如何在Oracle中显示SQL执行进度和执行计划?
问题:
您想查看OracleSQL在SQL执行计划中花费时间的位置。
解
使用Oracle11g版本,我们可以在SQL运行时查看SQL执行计划的进度。“V$SQL_PLAN_MONITOR”视图为SQL语句的执行计划的每个步骤包含一行。SQL下面将帮助您查看执行计划以及进度。
“V$SQL_PLAN_MONITOR”为您提供有关使用资源最多的步骤的信息,“V$SQL_PLAN_MONITOR”中的统计信息每秒更新一次。
通过使用DBMS_SQLTUNE包的REPORT_SQL_MONITOR函数,我们还可以在执行计划内生成查询进度的实时文本,HTML甚至XML报告。
示例
select
a.sid
,a.status
,to_char(a.sql_exec_start,'yymmdd hh24:mi') start_time
,a.plan_line_id
,a.plan_operation
,a.plan_options
,a.output_rows
,a.workarea_mem mem_bytes
,a.workarea_tempseg temp_bytes
from v$sql_plan_monitor a
,v$sql_monitor b
where a.status NOT LIKE '%DONE%'
and a.key = b.key
order by a.sid, a.sql_exec_start, a.plan_line_id;生成HTML报告。
示例
SET LINES 3000 PAGES 0 LONG 1000000 TRIMSPOOL ON SPOOL report.html select dbms_sqltune.report_sql_monitor(session_id=> 901, event_detail => 'YES' ,report_level => 'ALL' ,type => 'HTML' ) from dual; SPOOL OFF;
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短