Oracle 11g实时SQL监控 v$sql_monitor
Oracle 11g实时SQL监控: 前面提到,在Oracle Database 11g中,v$session视图增加了一些新的字段,这其中包括SQL_EXEC_START和SQL_EXEC_ID,
这两个字段实际上代表了Oracle 11g的一个新特性:实时的SQL监控(Real Time SQL Monitoring)。 在Oracle 11g之前的版本,长时间运行的SQL可以通过监控v$session_longops来观察,当某个操作执行时间超过6秒,
就会被记录在v$session_longops 中,通常可以监控到全表扫描、全索引扫描、哈希联接、并行查询等操作; 而在Oracle 11g中,当SQL并行执行时,会立即被实时监控到,或者当SQL单进程运行时,如果消耗超过5秒的CPU或I/O时间,它也会被监控到。
监控数据被记录在v$sql_monitor视图中,当然也可以通过Oracle 11g新增的 package DBMS_MONITOR 来主动对SQL执行监控部署。 来看一下主要视图v$sql_monitor的结构: Name Type Nullable Default Comments
------------------------- -------------- -------- ------- --------
KEY NUMBER Y
STATUS VARCHAR2(19) Y
USER# NUMBER Y
USERNAME VARCHAR2(30) Y
MODULE VARCHAR2(64) Y
ACTION VARCHAR2(64) Y
SERVICE_NAME VARCHAR2(64) Y
CLIENT_IDENTIFIER VARCHAR2(64) Y
CLIENT_INFO VARCHAR2(64) Y
PROGRAM VARCHAR2(48) Y
PLSQL_ENTRY_OBJECT_ID NUMBER Y
PLSQL_ENTRY_SUBPROGRAM_ID NUMBER Y
PLSQL_OBJECT_ID NUMBER Y
PLSQL_SUBPROGRAM_ID NUMBER Y
FIRST_REFRESH_TIME DATE Y
LAST_REFRESH_TIME DATE Y
REFRESH_COUNT NUMBER Y
SID NUMBER Y
PROCESS_NAME VARCHAR2(5) Y
SQL_ID VARCHAR2(13) Y
SQL_TEXT VARCHAR2(2000) Y
IS_FULL_SQLTEXT VARCHAR2(1) Y
SQL_EXEC_START DATE Y
SQL_EXEC_ID NUMBER Y
SQL_PLAN_HASH_VALUE NUMBER Y
EXACT_MATCHING_SIGNATURE NUMBER Y
FORCE_MATCHING_SIGNATURE NUMBER Y
SQL_CHILD_ADDRESS RAW(8) Y
SESSION_SERIAL# NUMBER Y
PX_IS_CROSS_INSTANCE VARCHAR2(1) Y
PX_MAXDOP NUMBER Y
PX_MAXDOP_INSTANCES NUMBER Y
PX_SERVERS_REQUESTED NUMBER Y
PX_SERVERS_ALLOCATED NUMBER Y
PX_SERVER# NUMBER Y
PX_SERVER_GROUP NUMBER Y
PX_SERVER_SET NUMBER Y
PX_QCINST_ID NUMBER Y
PX_QCSID NUMBER Y
ERROR_NUMBER VARCHAR2(40) Y
ERROR_FACILITY VARCHAR2(4) Y
ERROR_MESSAGE VARCHAR2(256) Y
BINDS_XML CLOB Y
OTHER_XML CLOB Y
ELAPSED_TIME NUMBER Y
QUEUING_TIME NUMBER Y
CPU_TIME NUMBER Y
FETCHES NUMBER Y
BUFFER_GETS NUMBER Y
DISK_READS NUMBER Y
DIRECT_WRITES NUMBER Y
IO_INTERCONNECT_BYTES NUMBER Y
PHYSICAL_READ_REQUESTS NUMBER Y
PHYSICAL_READ_BYTES NUMBER Y
PHYSICAL_WRITE_REQUESTS NUMBER Y
PHYSICAL_WRITE_BYTES NUMBER Y
APPLICATION_WAIT_TIME NUMBER Y
CONCURRENCY_WAIT_TIME NUMBER Y
CLUSTER_WAIT_TIME NUMBER Y
USER_IO_WAIT_TIME NUMBER Y
PLSQL_EXEC_TIME NUMBER Y
JAVA_EXEC_TIME NUMBER Y
RM_LAST_ACTION VARCHAR2(48) Y
RM_LAST_ACTION_REASON VARCHAR2(30) Y
RM_LAST_ACTION_TIME DATE Y
RM_CONSUMER_GROUP VARCHAR2(30) Y SQL> 注意这里的SQL_EXEC_ID就是v$session视图中新增字段的来源。这个视图还记录了SQL的CPU_TIME以及BUFFER_GETS等重要信息,
对于诊断SQL性能问题具有极大的帮助。结合v$sql_monitor视图与v$sql_plan_monitor视图可以进一步查询SQL的执行计划等信息。
联合一些其他视图,如v$active_session_history、v$session、v$session_longops、v$sql、v$sql_plan等,可以获得关于SQL的更多信息。 v$sql_monitor 收集的信息每秒刷新一次,接近实时,当SQL执行完毕,信息并不会立即从v$sql_monitor中删除,至少会保留1分钟,
v$sql_plan_monitor 视图中的执行计划信息也是每秒更新一次,当SQL执行完毕,它们同样至少被保留1分钟。 实时SQL监控需要 statistics_level 初始化参数设置为TYPICAL或ALL:
SQL> show parameter statistics_level NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
statistics_level string TYPICAL SQL> select statistics_name,session_status,system_status,activation_level,session_settable
2 from v$statistics_level
3 where statistics_name = 'SQL Monitoring'; STATISTICS_NAME SESSION_STATUS SYSTEM_STATUS ACTIVATION_LEVEL SESSION_SETTABLE
---------------------------------------------------------------- -------------- ------------- ---------------- ----------------
SQL Monitoring ENABLED ENABLED TYPICAL YES 同时CONTROL_MANAGEMENT_PACK_ACCESS参数必须是DIAGNOSTIC+TUNING(这是缺省设置): SQL> show parameter control_manage NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_management_pack_access string DIAGNOSTIC+TUNING 在如上设置下,数据库会启动自动的实时SQL监控,Oracle还提供Hints可以强制制定对SQL执行监控或者不允许监控,这两个Hints是monitor与no_monitor。 强制对某个SQL使用实时监控可以如下改写SQL:
select /*+ monitor */ count(*) from emp where sal > 5000;
指定不执行实时监控:
select /*+ no_monitor */ count(*) from emp where sal > 5000 查看数据库中已经生成的监控信息可以使用DBMS_SQLTUNE包来实现: SQL> set long 10000000
SQL> set longchunksize 10000000
SQL> set linesize 200
SQL> select dbms_sqltune.report_sql_monitor from dual; REPORT_SQL_MONITOR
-------------------------------------------------------------------------------------
SQL Monitoring Report SQL Text
------------------------------
select /*+ monitor */ count(*) from emp where sal > 5000 Global Information
------------------------------
Status : DONE (ALL ROWS)
Instance ID : 1
Session : SCOTT (142:43)
SQL ID : 2bhgjhbypqw17
SQL Execution ID : 16777216
Execution Started : 10/29/2018 23:46:53
First Refresh Time : 10/29/2018 23:46:53
Last Refresh Time : 10/29/2018 23:46:53
Duration : .001s
Module/Action : SQL*Plus/-
Service : SYS$USERS
Program : sqlplus@prod (TNS V1-V3)
Fetch Calls : 1 Global Stats
======================================
| Elapsed | Cpu | Fetch | Buffer |
| Time(s) | Time(s) | Calls | Gets |
======================================
| 0.00 | 0.00 | 1 | 7 |
====================================== SQL Plan Monitoring Details (Plan Hash Value=2083865914)
==========================================================================================================================
| Id | Operation | Name | Rows | Cost | Time | Start | Execs | Rows | Activity | Activity Detail |
| | | | (Estim) | | Active(s) | Active | | (Actual) | (%) | (# samples) |
==========================================================================================================================
| 0 | SELECT STATEMENT | | | | 1 | +0 | 1 | 1 | | |
| 1 | SORT AGGREGATE | | 1 | | 1 | +0 | 1 | 1 | | |
| 2 | TABLE ACCESS FULL | EMP | 1 | 3 | | | 1 | | | |
==========================================================================================================================
Oracle 11g实时SQL监控 v$sql_monitor的更多相关文章
- SQL*PLUS下使用AUTOTRACE、sql顾问、实时sql监控
高级SQL优化(三) 常用优化工具 ——<12年资深DBA教你Oracle开发与优化—— 高级SQL优化(一) ——<12年资深DBA教你Oracle开发与优化——性能优化部分 1 aut ...
- Oracle 11g 中SQL性能优化新特性之SQL性能分析器(SQLPA)
Oracle11g中,真实应用测试选项(the Real Application Testing Option)提供了一个有用的特点,叫SQL性能分析器(SQL Performance Analyze ...
- Oracle 11G CRUD操作监控单个表
前言: 线上oracle数据库有张表的数据有些乱,依据应用db的log和应用的log也没有检查出来谁改动了.所以决定把这张单表做个具体的insert.update.delete监控.一:使用数据 ...
- Oracle 11g 禁用 SQL Tuning Advisor 与 auto space advisor
生产上有一套11g数据库alert.log报错ORA-16957: SQL Analyze time limit interrupt. 查询MOS相关文档Troubleshooting: ORA-1 ...
- Oracle 11g 常用sql记录
--表备份 create table xxx_bak as select * from xxx; --表数据清除 truncate table xxx --锁表问题处理sql开始 select ses ...
- Oracle 11g PL/SQL Developer登入时候报ORA-12638: 身份证明检索失败的解决办法(安装了6遍,吐血之作)
1.报这个错的时候会弹出一个对话框,先点击终止 2.然后汇报出这个是错误的窗口,然后点击确认,但是不要关这个安装窗口也不要其他不必要操作,窗口最小化 3.找到product文件夹,一般在app文件里 ...
- In Oracle 11g, how to change the order of the results of a sql without “order by”?(转)
oracle 11g 当sql语句中不加order by的时候,好像是按rowid的顺序返回结果的.我也看过一些相关的文档,oracle的官方意思就是不加order by,就不保证输出的顺序. 那么, ...
- PL/SQL Developer连接本地Oracle 11g 64位数据库
转摘:http://www.cnblogs.com/ymj126/p/3712727.html 用于学习,笔记,以备后用. 1.登录PL/SQL Developer 这里省略Oracle数据库和PL/ ...
- 【转】Win7 64bit Oracle 11g 使用PL/SQL Developer 连接时提示“SQL*Net not properly installed”
转载:http://www.cnblogs.com/xihuaodc/p/3189257.html 因为之前的Oracle不能用了,所以重新安装了64位的Oracle,安装一路正常 完了之后安装了P ...
随机推荐
- wepy框架须知
安装脚手架 . 安装构件工具 npm i wepy-cli -g .创建项目 wepy new 项目名 .实时编译 wepy build --watch 或 npm run dev .使用微信开发者工 ...
- JS怎样实现图片的懒加载以及jquery.lazyload.js的使用
在项目中有时候会用到图片的延迟加载,那么延迟加载的好处是啥呢? 我觉得主要包括两点吧,第一是在包含很多大图片长页面中延迟加载图片可以加快页面加载速度:第二是帮助降低服务器负担. 下面介绍一下常用的延迟 ...
- nginx中有关 root 和 alias的主要区别
举个例子给伙伴们区别就明显看出来了,例子如下: location /img/ { alias /var/www/image/; }注意:如果按照上述配置的话,则访问/img/目录里面的文件时,ning ...
- Android为TV端助力 同时setTag两次,保存多种值
示例代码: view.setTag(R.string.action_settings,hodler.content); 接收两个值,一个是key值,必须是唯一值,而且要写在values/ids.xml ...
- Android为TV端助力 MediaPlayer的一些使用方法简历
这里提供一些MediaPlayer的简单方法,方便以后熟练的使用它! 1)如何获得MediaPlayer实例: 可以使用直接new的方式: MediaPlayer mp = new MediaPlay ...
- Jmeter接口测试问题及解决方法积累
一.各个类型参数的位置 plain body query parameter URI 路径上 二.特殊字符处理 \"作为参数输入到接口,会出现错误 响应断言中如果有用到正则表达式,不能包含正 ...
- OpenCV 4.0.1 找不到R.styleable解决
OpenCV 4.0.1作为模块导入Android Studio会有找不到R.styleable的问题. 解决方法 1.导入模块前 将 opencv-4.0.1-android-sdk\OpenCV- ...
- HandyEditor 富文本编辑器整合到python flask项目中
1.下载HandyEditor,地址http://he.catfish-cms.com/ 2.解压后的文件名HandyEditor-master改为HandyEditor,文件夹里的文件如下 3.将H ...
- The Microsoft Distributed Transaction Coordinator (MS DTC) has cancelled the distributed transaction.
同事反馈一个系统在运行一个存储过程时遇到了下面错误: Msg 1206, Level 18, State 169, Procedure xxxxxx, Line 118The Microsoft Di ...
- [20181015]12C SQL Translation Framework.txt
[20181015]12C SQL Translation Framework.txt --//12c提供一个dba改写sql语句的可能性,实际上10g,11g之前也有一个包DBMS_ADVANCED ...