监视oracle执行的SQL语句
2016-07-16 14:35
423 查看
查询v$sql
查询匹配的参数,会造成每个语句多行:
select t.*,
b.name,b.position,b.dup_position,
b.value_string
from v$sql t, v$sql_bind_capture b
where
t.hash_value=b.hash_value
and t.LAST_ACTIVE_TIME>(sysdate - interval '1' MINUTE) --执行1分钟内的SQL语句
and t.PARSING_SCHEMA_NAME = 'LSBIKE' --数据库
and (t.MODULE = 'JDBC Thin Client') --不是在某些终端里的执行
and lower(t.SQL_TEXT) like '%select%' --查询某类SQL语句
order by t.LAST_ACTIVE_TIME desc
Oracle11g使用sql_monitor实时监控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 收集的信息每秒刷新一次,接近实时,当 SQL 执行完毕,信息并不会
立即从 v$sql_monitor 中删除,至少会保留 1 分钟,v$sql_plan_monitor 视图中的执行计划信息
也是每秒更新一次,当 SQL 执行完结,它们同样至少被保留 1 分钟。
实时 SQL 监控需要 statistics_level 初始化参数设置为 TYPICAL 或 ALL
select * from v$sql t where t.LAST_ACTIVE_TIME>(sysdate - interval '1' MINUTE) --执行1分钟内的SQL语句 and t.PARSING_SCHEMA_NAME = 'LSBIKE' --数据库 and (t.MODULE is null or t.MODULE not like '%PL/SQL%') --不是在某些终端里的执行 and lower(t.SQL_TEXT) like '%select%' --查询某类SQL语句 order by t.LAST_ACTIVE_TIME desc
查询匹配的参数,会造成每个语句多行:
select t.*,
b.name,b.position,b.dup_position,
b.value_string
from v$sql t, v$sql_bind_capture b
where
t.hash_value=b.hash_value
and t.LAST_ACTIVE_TIME>(sysdate - interval '1' MINUTE) --执行1分钟内的SQL语句
and t.PARSING_SCHEMA_NAME = 'LSBIKE' --数据库
and (t.MODULE = 'JDBC Thin Client') --不是在某些终端里的执行
and lower(t.SQL_TEXT) like '%select%' --查询某类SQL语句
order by t.LAST_ACTIVE_TIME desc
Oracle11g使用sql_monitor实时监控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 收集的信息每秒刷新一次,接近实时,当 SQL 执行完毕,信息并不会
立即从 v$sql_monitor 中删除,至少会保留 1 分钟,v$sql_plan_monitor 视图中的执行计划信息
也是每秒更新一次,当 SQL 执行完结,它们同样至少被保留 1 分钟。
实时 SQL 监控需要 statistics_level 初始化参数设置为 TYPICAL 或 ALL
select * from v$sql_monito t
相关文章推荐
- pl/sql oracle
- Oracle体系结构
- Navicat for oracle 提示 cannot load OCI DLL,126 193的解决方法
- Oracle中的sid与servicename
- oracle number对应java数据类型BigDecimal
- Oracle OCP笔记(32)全球化(字符集,语言,地区等)
- Oracle OCP笔记(31)使用闪回功能
- Oracle OCP笔记(30)数据库恢复
- Oracle OCP笔记(29)RMAN备份 - Config
- Oracle语句优化的十九种方式
- 数据库学习(整理)----6--Oracle如何快速备份和多次备份数表数据
- Oracle10g卸载后再次安装
- 数据库(学习整理)----5--Oracle常用的组函数
- oracle基础
- ORACLE 管理undo
- oracle连接串的一种写法
- oracle连接串的一种写法
- 64位windows上访问64位oracle 12c
- 64位windows上访问64位oracle 12c
- oracle数据库操作