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 ...
随机推荐
- nodemailer + express + h5 拖拽文件上传 实现发送邮件
一.部署 1.部署Express 2.准备一个邮箱并开始SMTP服务 二.服务器端 三.客户端 四.效果:
- osx安装sass
1.安装ruby (1)OS X 缺少的套件管理工具 homebrew 的安装 http://brew.sh/index_zh-tw.html (2)通过homebrew安装ruby // 到文件夹 ...
- 关于微信小程序<radio-group>布局排列
微信小程序更新以后今天<radio>全部变成垂直排列了,布局乱了. 一开始尝试给外层<view>添加display:flex;flex-direction:row:未果. 后来 ...
- Sysbench Sysbench在centos系统下的安装
Sysbench在centos系统下的安装 by:授客 QQ:1033553122 测试环境: CentOS-7-x86_64-DVD-1503-01.iso 下载地址: http:/ ...
- celery 任务队列 + redis
Celery 是一个“自带电池”的的任务队列.它易于使用,所以你可以无视其所解决问题的复杂程度而轻松入门.它遵照最佳实践设计,所以你的产品可以扩展,或与其他语言集成,并且它自带了在生产环境中运行这样一 ...
- Android内存优化(三)详解内存分析工具MAT
前言 在这个系列的前四篇文章中,我分别介绍了DVM.ART.内存泄漏和内存检测工具的相关知识点,这一篇我们通过一个小例子,来学习如何使用内存分析工具MAT. 1.概述 在进行内存分析时,我们可以使用M ...
- OkHttp的缓存
看到很多小伙伴对OkHttp的缓存问题并不是十分了解,于是打算来说说这个问题.用好OkHttp中提供的缓存,可以帮助我们更好的使用Retrofit.Picasso等配合OkHttp使用的框架.OK,废 ...
- Unity3D 4.x编辑器操作技巧
unity wiki(en chs) unity官网 unity manual(chs 官方最新) 各个版本unity编辑器下载地址: https://unity3d.com/cn/get-un ...
- SQL SERVER 查询表字段中是否有汉字
SELECT * FROM TB WHERE COL LIKE N'%[吖-咗]%'
- Linux学习历程——Centos 7 cat命令
一.命令介绍 我们使用man cat命令,可以看到cat命令的用途是连接文件或标准输入并打印,简单来说cat命令是用来查看纯文本文件(通常为内容较少的文件),与重定向符号配合使用,可以实现创建文件与合 ...