Oracle Real Time SQL Monitor

Oracle数据库的实时SQL监控能让你用来监控正在执行SQL语句的性能。缺省情况下,当SQL语句使用 并行执行或当SQL语句的单个操作消耗了5秒的CPU或I/O时间就会自动启动SQL监控。可以使用v $sql_monitor与v$sql_plan_monitor视图来监控SQL语句执行的统计信息。可以使用这些视图时行关 联来获得被监控到的关于执行的其它信息:
 .v$active_session_history
 .v$session
 .v$session_longops
 .v$sql
 .v$sql_plan

在监控初始化之后,数据库将会向动态性能视图v$sql_monitor中增加条目。这个条目跟踪SQL执行的 关键性能,包括:执行时间,CPU时间,读取与写入的次数,I/O等待时间和各种其它等待时间。这些 统计信息当SQL语句执行时间会被实时刷新,每秒生成一次。在执行结束后,监控信息不会立即被删 除,但在v$sql_monitor中至少保留一分钟。当需要为新的SQL语句腾出空间时,会评估条目是否需要 被删除来回收空间。

v$sql_monitor视图包含v$sql视图中统计信息的一组子集。然而,不像v$sql,监控统计信息不会对 多次执行进行累加。相反,v$sql_monitor中的一个条目被关联到SQL语句的一个单独操作。如果数据 库监控相同SQL语句执行两次,那么在v$sql_monitor中会有两次执行的统计信息。

为了唯一标识相同SQL语句的两次执行,会生成一个叫执行键的复合键。执行键是由三个属性组成, 它们分别为v$sql_monitor中的:
 .SQL标识符用来标识SQL语句(SQL_ID)
 .开始执行时间(SQL_EXEC_START)
 .一个内部生成的标识符用来确保主键是唯一的(SQL_EXEC_ID)

SQL执行计划监控
 真时SQL监控也包括监控SQL语句的执行计划中的每一个操作的统计信息。这些数据在v $sql_plan_monitor视图中可以看到。类似于v$sql_monitor视图,v$sql_plan_monitor视图中的统计 信息当SQL语句被执行时每秒会更新一次。这些统计信息在SQL执行结束后是存在的,它的生命周期与 v$sql_monitor是一样的。对于每个被监控的SQL语句,在v$sql_plan_monitor视图中将会有多个条目 ,每个条目关联执行计划中的一个操作。

并行执行监控
Oracle数据库会当SQL语句开始执行时会自动监控并行查询,DML与DDL语句。v$sql_monitor与v $sql_plan_monitor视图将会以单独的条目来记录并行执行中每个操作的监控信息。

v$sql_monitor对于并行执行协调进程和每个并行执行服务器进程有一个条目。对于每一个条目在v $sql_plan_monitor视图中也有相关的条目。因为对于SQL语句并行执行的所分配的进程是相互协作的 ,这些条目共享相同的执行键(由sql_id,sql_exec_start与sql_exec_id组成)。因此可以聚合执行 键来判断并行执行的整个统计信息。

生成SQL监控报告
 可以使用SQL监控报告来查看SQL监控数据。SQL监控报告使用以下视图中的数据:
 .gv$sql_monitor
 .gv$sql_plan_monitor
 .gv$sql
 .gv$sql_plan
 .gv$active_session_history
 .gv$session_longops

为了生成SQL监控报告,运行dbms_sqltune.report_sql_monitor过程:
SQL> set long 10000000
SQL> set longchunksize 10000000
SQL> set linesize 200
SQL> variable my_rept clob;
SQL> begin
  2  :my_rept:=dbms_sqltune.report_sql_monitor();
  3  end;
  4  /
print :my_rept

PL/SQL procedure successfully completed.

SQL>
MY_REPT
---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- ------------------------
SQL Monitoring Report

SQL Text
------------------------------
/* SQL Analyze(1) */ select /*+ full(t) no_parallel(t) no_parallel_index(t) dbms_stats  cursor_sharing_exact use_weak_name_resl dynamic_sampling(0) no_monitoring no_substrb_pad  */to_char(count("AAE064"
)),to_char(substrb(dump(min("AAE064"),16,0,32),1,120)),to_char(substrb(dump(max ("AAE064"),16,0,32),1,120)),to_char(count("AAB001")),to_char(substrb(dump(min ("AAB001"),16,0,32),1,120)),to_char(substrb(
dump(max("AAB001"),16,0,32),1,120)),to_char(count("AAB191")),to_char(substrb(dump(min ("AAB191"),16,
0,32),1,120)),to_char(substrb(dump(max("AAB191"),16,0,32),1,120)),to_char(count ("AAB190")),to_char(substrb(dump(min("AAB190"),16,0,32),1,120)),to_char(substrb(dump (max("AAB190"),16,0,32),1,120)),to_ch
ar(count("AAB211")),to_char(substrb(dump(min("AAB211"),16,0,32),1,120)),to_char(substrb (dump(max("AAB211"),16,0,32),1,120)),to_char(count("AAB212")),to_char(substrb(dump(min ("AAB212"),16,0,32),1,120))
,to_char(substrb(dump(max("AAB212"),16,0,32),1,120)),to_char(count("AAB213")),to_char (substrb(dump(
min("AAB213"),16,0,32),1,120)),to_char(substrb(dump(max ("AAB213"),16,0,32),1,120)),to_char(count("AAB214")),to_char(substrb(dump(min ("AAB214"),16,0,32),1,120)),to_char(substrb(dump(max("AAB214"),16,0,
32),1,120)),to_char(count("AAB215")),to_char(substrb(dump(min ("AAB215"),16,0,32),1,120)),to_char(substrb(dump(max("AAB215"),16,0,32),1,120)),to_char (count("AAE011")),to_char(substrb(dump(min("AAE011")
,16,0,32),1,120)),to_char(substrb(dump(max("AAE011"),16,0,32),1,120)),to_char(count ("AAE036")),to_c
har(substrb(dump(min("AAE036"),16,0,32),1,120)),to_char(substrb(dump(max ("AAE036"),16,0,32),1,120)),to_char(count("AAE017")),to_char(substrb(dump(min ("AAE017"),16,0,32),1,120)),to_char(substrb(dump(ma
x("AAE017"),16,0,32),1,120)),to_char(count("SJCQNY")),to_char(substrb(dump(min ("SJCQNY"),16,0,32),1,120)),to_char(substrb(dump(max("SJCQNY"),16,0,32),1,120)) from  "LEMIS_4307"."AB13" t /*
NDV,NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL,NDV, NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL,NDV,NIL,NIL*/

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/6cedb5f309b1366abf0c7634ebb81ca4.html