当前位置: 首页 > 编程笔记 >

如何在Oracle中显示SQL执行进度和执行计划?

孟宏才
2023-03-14
本文向大家介绍如何在Oracle中显示SQL执行进度和执行计划?,包括了如何在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报告。

示例

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;
 类似资料:
  • 本文向大家介绍如何在Oracle中监视实时SQL执行统计信息?,包括了如何在Oracle中监视实时SQL执行统计信息?的使用技巧和注意事项,需要的朋友参考一下 问题: 您要监视Oracle中当前正在执行的SQL统计信息。 解 如果您的数据库是Oracle Database 11g,则可以使用以下查询从“ V $SQL_MONITOR”中进行选择,以监视SQL查询的近实时资源消耗。 “ V $SQL

  • 问题内容: 我有一个查询,在SQL Server Management STudio中超快,在sp_ExecuteSQL下运行时超慢。 这与在spExecuteSQL下运行时不缓存执行计划有关吗? 问题答案: 不。 您可以看到两个执行计划,并使用以下查询对其进行比较。 该版本将有一个“准备好的”

  • 问题内容: 我有一个典型的客户/订单中设置的表,我想显示总 百分比 销售的特定客户负责。我可以像这样获得系统中的订单总数: 这样我就可以得到客户发出的订单总数: 如何将它们组合成一个查询,以返回特定客户的销售百分比?谢谢! 问题答案: MySQL: 编辑 我想如果我注意到 postgres 标签会有所帮助。我认为这是一个MySQL问题。 PostgreSQL: PS我的PostgreSQL生锈了,

  • 我有这样一个PL/SQL块: 此块需要使用Oracle JDBC执行。我尝试过以下方法: > 尝试使用语句对象执行此操作。因为这是一个块,所以出现了一个异常,说这不是一个sql语句 这可以分成sql语句,但是我有100个这样的块,这对代码来说很麻烦,我想把这个留给sqlplus。 尝试使用Callable语句,但不能正常工作。 任何解决方案都会有帮助。

  • 我在下面的查询中遇到了一个错误,它给出了一个符号(在使用循环的行中)。我正在尝试开发一个函数,该函数将动态参数作为表名、列名、表id,并用于其他表。