首页 > 数据库 >17.Sql Monitor RePort

17.Sql Monitor RePort

时间:2023-08-13 22:55:05浏览次数:40  
标签:SET Monitor 17 SQL monitor Sql sql RePort MONITOR

1.Sql Monitor's 监控的前提条件

Sql Monitor 是监控一条Sql是怎样执行的,当启用SQL Monitor功能时,当满足以下任何条件时,数据库会自动监控简单的数据库操作:

  • A SQL statement or PL/SQL subprogram has consumed at least 5 seconds of CPU or I/O time in a single execution. (cpu或者I/O执行时间超过5秒)
  • A SQL statement executes in parallel.   -- 并行执行时
  • A SQL statement specifies the /*+ MONITOR */ hint.    -- 使用了/*+ monitor */ 语法
  • The event sql_monitor specifies a list of SQL IDs for the statements to be monitored.  -- 使用sql_monitor事件指定要监控的的sql id
    ALTER SYSTEM SET EVENTS 'sql_monitor [sql: 5hc07qvt8v737|sql: 9ht3ba3arrzt3] force=true'

2. Sql Monitor's 监控的目的

  对于简单的操作,实时SQL监控有助于确定语句将时间花在哪里

3.Sql Monitor's 工作原理

 

 

  如上图所示,DBMS_SQL_MONITOR包定义了数据库操作。启动监控后,数据库在AWR中存储有关数据库操作的元数据,并在AWR和ASH中存储数据。当每个受监控语句执行时,数据库几乎实时刷新监控统计数据,通常每秒一次。数据库将操作数据(语句和元数据)存储在SGA中。操作完成后,数据库将SQL Monitor报告写入磁盘,可以使用DBA_HIST_REPORTS视图进行查询。

  每个受监控的数据库操作在V$SQL_MONITOR视图中都有一个条目。此条目跟踪为执行收集的关键性能指标,包括耗时、CPU时间、读数和写入次数、I/O等待时间以及各种其他等待时间。V$SQL_PLAN_MONITOR视图包括被监控的SQL语句执行计划中每个操作的监控统计信息。您可以使用DBMS_SQL_MONITOR.REPORT_SQL_MONITOR、Oracle Enterprise Manager Cloud Control(Cloud Control)或EM Express访问报告。

4.启用Sql Monitor需要开启如下数据库参数

  STATISTICS_LEVEL初始化参数设置为toTYPICAL(默认值)或ALL,默认启用SQL监控功能。对于所有长期运行的查询,SQL监控会自动启动。

  由于SQL监控是Oracle数据库调整包的一项功能,因此必须将CONTROL_MANAGEMENT_PACK_ACCESS初始化参数设置为DIAGNOSTIC+TUNING(默认值),该默认一般不用改


SQL> show parameter CONTROL_MANAGEMENT_PACK_ACCESS;  
SQL> ALTER SYSTEM SET STATISTICS_LEVEL='TYPICAL';    # 这里如果统计信息的level是basic级别要给它改成typical

5.实例

SELECT /*+ MONITOR */ s.prod_id, c.cust_last_name FROM sales s, customers c ORDER BY prod_id;   #这里在一个会话执行一条语句,然后再用dba_sql_monitor包进行监控生产一个active html文件。
SET FEEDBACK OFF 
SET TERMOUT OFF
SET TRIMSPOOL ON
SET TRIM ON
SET PAGES 0
SET LINESIZE 1000
SET LONG 1000000
SET LONGCHUNKSIZE 1000000

SPOOL /tmp/long_sql.html
SELECT DBMS_SQL_MONITOR.REPORT_SQL_MONITOR(
         report_level => 'ALL', 
         TYPE         => 'active') 
FROM   DUAL;
SPOOL OFF

如果要根据sql_id生成Sql monitor Report,可以这样写:

SET FEEDBACK OFF 
SET TERMOUT OFF
SET TRIMSPOOL ON
SET TRIM ON
SET PAGES 0
SET LINESIZE 1000
SET LONG 1000000
SET LONGCHUNKSIZE 1000000

SPOOL /tmp/long_sql.html
SELECT DBMS_SQL_MONITOR.REPORT_SQL_MONITOR(
         sql_id => '74qqqwntwzxb1',     #这里可以加上某一条的sql id值。
         report_level => 'ALL', 
         TYPE         => 'active') 
FROM   DUAL;
SPOOL OFF

这里的sql_id可以通过视图v$sql_monitor视图查看,查到sql_id后,把sql_id带到上面的包函数中,生茶Sql monitor Report.

select sql_id,sql_text from v$sql_monitor where sql_text='语句';

这里可以看看生成的Sql monitor Report报告(long_sql.html)

参考:https://docs.oracle.com/en/database/oracle/oracle-database/19/tgsql/monitoring-database-operations.html#GUID-4048D00E-2635-42C8-A37D-71EFAC619062

 

标签:SET,Monitor,17,SQL,monitor,Sql,sql,RePort,MONITOR
From: https://www.cnblogs.com/zmc60/p/17627472.html

相关文章

  • 1795. 每个产品在不同商店的价格
    1795.每个产品在不同商店的价格2023年8月13日19:40:251795.每个产品在不同商店的价格简单SQLSchemaPandasSchema表:Products+-------------+---------+|ColumnName|Type|+-------------+---------+|product_id|int||store1|int||......
  • 178. 分数排名
    178.分数排名2023年8月13日18:10:41178.分数排名中等SQLSchemaPandasSchema表:Scores+-------------+---------+|ColumnName|Type|+-------------+---------+|id|int||score|decimal|+-------------+---------+在SQL中,i......
  • 1173. 即时食物配送 I
    1173.即时食物配送I2023年8月13日20:14:171173.即时食物配送I简单48相关企业SQLSchemaPandasSchema配送表:Delivery+-----------------------------+---------+|ColumnName|Type|+-----------------------------+---------+|delive......
  • 1741. 查找每个员工花费的总时间
    1741.查找每个员工花费的总时间2023年8月13日21:39:211741.查找每个员工花费的总时间简单SQLSchemaPandasSchema表:Employees+-------------+------+|ColumnName|Type|+-------------+------+|emp_id|int||event_day|date||in_time......
  • 达芬奇 DaVinci Resolve Studio 17.4影视后期调色软件下载和安装教程
    DaVinciResolve是一款专业的调色软件,将专业8K编辑,色彩校正,视觉效果和音频后期制作等功能集于一体的影视后期处理软件。广泛应用在影视后期,栏目包装,宣传片、广告片等领域。软件介绍调色页面设有全新HDR面板,可让您创建自定义色调范围的色轮,以便单独对任何色调范围进行微调!新增的......
  • 如何通过扩展(Extension)的方式给 SAP Fiori Elements List Report 的表格新增列试读
    本教程之前的步骤,我们已经详细学习了SAPFioriElements应用里类型为ListReport的创建步骤,并且介绍了使用安装在VisualStudioCode里的SAPFioriTools扩展提供的向导,生成FioriElements应用的本地项目结构:5.动手开发第一个SAPFioriElements应用6.知其然......
  • mysql在开启group_replication后,状态显示为RECOVERING,告警日志报错MY-013117、MY-0115
    问题描述:mysql在开启group_replication后,状态显示为RECOVERING,告警日志报错MY-013117、MY-011582、MY-011583,如下所示:数据库:MySQL8.0.27系统:rhel7.364位1、问题重现Slave02[(none)]>select*fromperformance_schema.replication_group_members;+-----------------------......
  • 微服务实战demo(1.5.17.RELEASE&Edgware.SR5)
    一、注册中心(使用eureka)1.依赖:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId></dependency><dependency><groupId>org.springfra......
  • 175. 组合两个表
    表: Person+-------------+---------+|列名|类型|+-------------+---------+|PersonId|int||FirstName|varchar||LastName|varchar|+-------------+---------+personId是该表的主键列。该表包含一些人的ID和他们的姓和名的信......
  • 176. 第二高的薪水
    176.第二高的薪水2023年8月12日19:03:40176.第二高的薪水中等SQLSchemaPandasSchemaEmployee表:+-------------+------+|ColumnName|Type|+-------------+------+|id|int||salary|int|+-------------+------+在SQL中,id是这个表......