ITPub博客

首页 > 数据库 > Oracle > sql monitor简介

sql monitor简介

原创 Oracle 作者:水逸冰 时间:2018-12-04 18:59:58 0 删除 编辑

Sql monitor 简介

11g 之后的版本 oracle 提供了一种实时 sql 监控工具,即 sql monitor 。默认情况下,当 sql 开启并行,或者 sql 的单词执行时间超过 5 秒钟, sql monitor 就会自动触发。当然前提是 sql monitor 功能没有被禁用。开启条件也比较简单:

1.   STATISTICS_LEVEL 被设置为 all 或者 typical

2.   control_management_pack_access 被设置为 DIAGNOSTIC+TUNING

sql monitor 启动之后,会收集执行时间, IO 信息, CPU 时间,读写压力等信息到 V$SQL_MONITOR V$SQL_PLAN_MONITOR 视图中。基本上每秒钟收集一次。虽然是实时监控工具,但是 sql 执行完成后,信息并不会马上删除,会保留 1 分钟。

实际意义:可以发现sql执行中的瓶颈,有的放矢,解决sql性能问题。

 

 

v$sql_monitor

只有在 v$sql_monitor 中的 sql 才可以用来生成 sql monitor 报告。

查看:

SET LINESIZE 300

COLUMN sql_text   FORMAT A100

SELECT sql_id,   status, sql_text FROM v$sql_monitor;

 

 

DBMS_SQLTUNE.REPORT_SQL_MONITOR

DBMS_SQLTUNE.report_sql_monitor 这个包有几个最常用的参数:

Sql_id: 目标 sql

Report_level :可选值有 none basic,typical,all; 默认值 typical 对大部分情况足够用了。

Type :可选值有 TEXT XML HTML.ACTIVE.active 11gR2 可用的,需要使用 HTML flash 。一般 html 就够用了。

Session_id: 指定 sid 。其实不常用。

 

这里有个例子:

SET LONG 1000000

SET   LONGCHUNKSIZE 1000000

SET LINESIZE   1000

SET PAGESIZE 0

SET TRIM ON

SET TRIMSPOOL ON

SET ECHO OFF

SET FEEDBACK OFF

spool   monitor_sql.html

SELECT

DBMS_SQLTUNE.report_sql_monitor(sql_id   =>'10z5xmbjdxysr',type=> 'HTML')

AS report FROM   dual;

spool off

将生成的 html 文件裁剪一下开头和结尾,然后就可以用浏览器查看了。

就像下面这样:

 

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31480688/viewspace-2284143/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
精通oracle,mysql和linux,热衷于研究数据库,擅长shell和Python自动化运维。VX:18302174682

注册时间:2017-08-05

  • 博文量
    104
  • 访问量
    119171