如何在Oracle中显示SQL执行进度和执行计划?
问题:
您想查看Oracle SQL在SQL执行计划中花费时间的位置。
解
使用Oracle 11g版本,我们可以在SQL运行时查看SQL执行计划的进度。“ V $SQL_PLAN_MONITOR”视图为SQL语句的执行计划的每个步骤包含一行。SQL下面将帮助您查看执行计划以及进度。
“ V $SQL_PLAN_MONITOR”为您提供有关使用资源最多的步骤的信息,“ V $SQL_PLAN_MONITOR”中的统计信息每秒更新一次。
通过使用DBMS_SQLTUNE包的REPORT_SQL_MONITOR函数,我们还可以在执行计划内生成查询进度的实时文本,HTML甚至XML报告。
示例
selecta.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 ONSPOOL report.html
select dbms_sqltune.report_sql_monitor(session_id=> 901,
event_detail => 'YES' ,report_level => 'ALL' ,type => 'HTML'
)
from dual;
SPOOL OFF;
以上是 如何在Oracle中显示SQL执行进度和执行计划? 的全部内容, 来源链接: utcz.com/z/340741.html