【转载】sql monitor
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27067062/viewspace-2129635/
SQL Monitor Report
1. SQL Monitor简介
在Oracle Database 11g中,系统自动监控符合以下条件的SQL,并收集执行时的细节信息:
1)采用并行方式执行
2)单次执行消耗的CPU或IO超过5秒
3)通过使用/* +MONITOR*/ HINT的语句
系统收集的SQL信息会存储在V$SQL_MONITOR、V$SQL_PLAN_MONITOR视图中
2. SQL Monitor 参数设置
STATISTICS_LEVEL设置为:'TYPICAL'(缺省)或者 'ALL'
CONTROL_MANAGEMENT_PACK_ACCESS设置为:'DIAGNOSTIC+TUNING'
3. SQL Monitor report获取方法
SQL Monitoring可以采用以下3种方式展现:
1)EM:Performance ——>右下角的SQL Monitoring ——>Monitored SQL Executions
2)SQL Developer:Tools ——>Monitor SQL
3)DBMS_SQLTUNE包 ——> DBMS_SQLTUNE.report_sql_monitor
其报告格式有:'TEXT','HTML','XML' ,'ACTIVE',其中'ACTIVE'只在11g R2以后才支持,使用HTML和Flash的方式显示动态的报告,需要从oracle官网读取相关联的Javascript和Flash。
备注:
如果不能连到Internet又想看ACTIVE Report可以下载相关的库文件到本地的HTTP服务器上,然后用BASE_PATH来制定库文件的位置。
在本地HTTP服务器上创建目录,然后下载下面的文件:
mkdir -p /var/www/html/sqlmon
cd /var/www/html/sqlmon
wget --mirror --no-host-directories --cut-dirs=1 http://download.oracle.com/otn_software/emviewers/scripts/flashver.js
wget --mirror --no-host-directories --cut-dirs=1 http://download.oracle.com/otn_software/emviewers/scripts/loadswf.js
wget --mirror --no-host-directories --cut-dirs=1 http://download.oracle.com/otn_software/emviewers/scripts/document.js
wget --mirror --no-host-directories --cut-dirs=1 http://download.oracle.com/otn_software/emviewers/sqlmonitor/11/sqlmonitor.swf
在调用函数时加上参数,比如:base_path => 'http://ipaddr/sqlmon'
4. SQL Monitor report生成实例
语法:
DBMS_SQLTUNE.REPORT_SQL_MONITOR()
FUNCTION REPORT_SQL_MONITOR RETURNS CLOB
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
SQL_ID VARCHAR2 IN DEFAULT
SESSION_ID NUMBER IN DEFAULT
SESSION_SERIAL NUMBER IN DEFAULT
SQL_EXEC_START DATE IN DEFAULT
SQL_EXEC_ID NUMBER IN DEFAULT
INST_ID NUMBER IN DEFAULT
START_TIME_FILTER DATE IN DEFAULT
END_TIME_FILTER DATE IN DEFAULT
INSTANCE_ID_FILTER NUMBER IN DEFAULT
PARALLEL_FILTER VARCHAR2 IN DEFAULT
PLAN_LINE_FILTER NUMBER IN DEFAULT
EVENT_DETAIL VARCHAR2 IN DEFAULT
BUCKET_MAX_COUNT NUMBER IN DEFAULT
BUCKET_INTERVAL NUMBER IN DEFAULT
BASE_PATH VARCHAR2 IN DEFAULT
LAST_REFRESH_TIME DATE IN DEFAULT
REPORT_LEVEL VARCHAR2 IN DEFAULT
TYPE VARCHAR2 IN DEFAULT
SQL_PLAN_HASH_VALUE NUMBER IN DEFAULT
4.1 Text文本格式
1) Sqlplus 参数设置查看
show parameter statistics_level;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
statistics_level string TYPICAL
show parameter CONTROL_MANAGEMENT_PACK_ACCESS;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_management_pack_access string DIAGNOSTIC+TUNING
2) 执行模拟SQL
[oracle@node4 sqlmonitor]$ sqlplus -S /nolog
conn /as sysdba;
select /* +moniotr*/* from scott.dept where deptno<=30;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
3) 从v$sql_monitor获取模拟SQL信息
col sql_text for a60;
set line 200;
set pagesize 20000;
select sql_id,sql_text from v$sql_monitor where sql_text like '%scott.dept%';
SQL_ID SQL_TEXT
------------- ------------------------------------------------------------
74qqqwntwzxb1 select /*+ Monitor*/ * from scott.dept where deptno=10
4) 生成text类型报告
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 report_sql_monitor_text.txt
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
SQL_ID => '74qqqwntwzxb1',
TYPE => 'TEXT',
REPORT_LEVEL => 'ALL') AS REPORT
FROM dual;
spool off
5) 展示报告内容
4.2 HTML格式
1)生成HTML类型报告
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 report_sql_monitor_html.html
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
SQL_ID => '74qqqwntwzxb1',
TYPE => 'HTML',
REPORT_LEVEL => 'ALL') AS REPORT
FROM dual;
spool off
2)html类型报告展示
4.3 Active格式
如不能联网,需要下载相应的flash组件、脚本,详细见SQL Monitor report获取方法
1)active类型报告生成
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 report_sql_monitor_active.html
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
SQL_ID => '74qqqwntwzxb1',
TYPE => 'ACTIVE',
REPORT_LEVEL => 'ALL',
BASE_PATH => 'http://ipaddr/sqlmon') AS report
FROM dual;
spool off
2)active类型报告展示
可以通过启动http服务,将文件放置在发布目录下,通过http://ipaddr/sqlmon/report_sql_monitor_active.html形式查看(需下载相应的脚本和组件)
或者拿到windows本地查看
5. SQL Monitor report其他方法使用
1)DBMS_SQLTUNE.REPORT_SQL_MONITOR_LIST
FUNCTION REPORT_SQL_MONITOR_LIST RETURNS CLOB
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
SQL_ID VARCHAR2 IN DEFAULT
SESSION_ID NUMBER IN DEFAULT
SESSION_SERIAL NUMBER IN DEFAULT
INST_ID NUMBER IN DEFAULT
ACTIVE_SINCE_DATE DATE IN DEFAULT
ACTIVE_SINCE_SEC NUMBER IN DEFAULT
LAST_REFRESH_TIME DATE IN DEFAULT
REPORT_LEVEL VARCHAR2 IN DEFAULT
AUTO_REFRESH NUMBER IN DEFAULT
BASE_PATH VARCHAR2 IN DEFAULT
TYPE VARCHAR2 IN DEFAULT
需要Oracle 11g R2以上版本。此函数用于产生一个对监控SQL的汇总页,类似于EM中的“Monitored SQL Executions”。
常用参数:TYPE和REPORT_LEVEL,用法与REPORT_SQL_MONITOR类似。
例如:
conn /as sysdba;
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 REPORT_SQL_MONITOR_LIST.HTML
SELECT dbms_sqltune.report_sql_monitor_list(
type => 'HTML',
report_level => 'ALL') AS report
FROM dual;
SPOOL OFF
2)DBMS_SQLTUNE.REPORT_SQL_DETAIL
FUNCTION REPORT_SQL_DETAIL RETURNS CLOB
Argument Name Type In/Out Default?
------------------------------ ----------------------- ------ --------
SQL_ID VARCHAR2 IN DEFAULT
SQL_PLAN_HASH_VALUE NUMBER IN DEFAULT
START_TIME DATE IN DEFAULT
DURATION NUMBER IN DEFAULT
INST_ID NUMBER IN DEFAULT
DBID NUMBER IN DEFAULT
EVENT_DETAIL VARCHAR2 IN DEFAULT
BUCKET_MAX_COUNT NUMBER IN DEFAULT
BUCKET_INTERVAL NUMBER IN DEFAULT
TOP_N NUMBER IN DEFAULT
REPORT_LEVEL VARCHAR2 IN DEFAULT
TYPE VARCHAR2 IN DEFAULT
DATA_SOURCE VARCHAR2 IN DEFAULT
END_TIME DATE IN DEFAULT
DURATION_STATS NUMBER IN DEFAULT
需要Oracle 11g R2以上版本。此函数用于根据各种条件参数(包括:start_time, end_time, duration, inst_id, dbid, event_detail, bucket_max_count, bucket_interval, top_n, duration_stats),产生比使用REPORT_SQL_MONITOR更加详细的SQL报告。
例如:
conn /as sysdba;
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 REPORT_SQL_DETAIL_HTML.HTML
SELECT dbms_sqltune.REPORT_SQL_DETAIL(SQL_ID => '74qqqwntwzxb1',
TYPE => 'active',
report_level => 'ALL') AS report
FROM dual;
SPOOL OFF
ERROR:
ORA-13971: Component "sql_detail" unknown
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.DBMS_REPORT", line 166
ORA-06512: at "SYS.DBMS_REPORT", line 612
ORA-06512: at "SYS.DBMS_REPORT", line 1079
ORA-06512: at "SYS.DBMS_REPORT", line 1135
ORA-06512: at "SYS.DBMS_SQLTUNE", line 20101
ORA-06512: at line 1
(上述错误在指定html格式,调整为active格式即可)
可以针对topSQL
conn /as sysdba;
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 REPORT_SQL_DETAIL.HTML
SELECT dbms_sqltune.report_sql_detail(top_n => 5,
TYPE => 'active',
report_level => 'ALL') AS report
FROM dual;
SPOOL OFF
【转载】sql monitor的更多相关文章
- sql monitor生成不了报告& FFS hint不生效两个问题思考
事情的发生就是这么偶然,一步步的深入才能汲取到更深入的知识~~ -------------------START------------------------------------------- ...
- DB SQL Monitor 阻塞及等待事件监控工具
SQL Monitor Designed By zhaoguan wang 说明------------------------------------------------------------ ...
- 11g SQL Monitor
1,首先确认两个参数的值 SQL> show parameter statistics_level NAME TYPE VALUE ------- ...
- 利用 SQL Monitor 查看语句运行状态步骤
利用 SQL Monitor 查看语句运行状态步骤 1.确定语句被 SQL Monitor 监控 SQL> SELECT * FROM GV$SQL_MONITOR WHERE sql_id=' ...
- [SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題
原文:[SQL]透過redgate SQL Monitor 來找出 ASYNC_NETWORK_IO 問題 最近因為在查一個SQL的效能問題,透過 sys.dm_os_wait_stats 來取得To ...
- 我的工具:Db SQL Monitor
SQL Monitor 是一款界面简洁.绿色小巧的sql活动监视器,它能够帮助用户对 SQL Server 运行进程和Job进行实时监视,您可以查看当前执行的SQL/命令并终止. 工具下载地址:htt ...
- DB SQL Monitor 会话状态及等待事件监控工具
DB SQL Monitor v1.7.6 Designed by Wang Zhaoguan 工具说明 --------------------------------------- ...
- [转载]sql 盲注之正则表达式攻击
[转载]sql 盲注之正则表达式攻击 -----------------------------------------MYSQL 5+-------------------------------- ...
- Oracle SQL调优系列之SQL Monitor Report
@ 目录 1.SQL Monitor简介 2.捕捉sql的前提 3.SQL Monitor 参数设置 4.SQL Monitor Report 4.1.SQL_ID获取 4.2.Text文本格式 4. ...
随机推荐
- 企业BGP网络规划案例(二)
设计思路梳理 1.AS的划分 : 由于该办公网物理上被划分为总部和两个异地的办公分支,总部和分支互联采用MSTP线路,为了方便管理和更为灵活的进行路由控制,选择BGP作为总部和分支的路由协议.关于AS ...
- Distance on the tree
Distance on the tree https://nanti.jisuanke.com/t/38229 DSM(Data Structure Master) once learned abou ...
- 项目总结21:项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库)
项目总结21:input实现多图上传(FormData)(上传OSS并保存数据库) 备注:本案例,作为Demo,包含少量的项目业务逻辑,input多图上传的逻辑是完整的: 不废话直接上代码 1-前端标 ...
- 正向与反向拓扑排序的区别(hdu 1285 确定比赛名次和hdu 4857 逃生)
确定比赛名次 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submis ...
- idea连接mysql
https://blog.csdn.net/Golden_soft/article/details/80952243
- U-Mail企业邮箱如何导入授权文件
首先,由于U-Mail有Linux版本与Windows版本的区别,并且都非常简单,所以就有了下面的步骤: Windows版本 <点击快速跳转> Linux版本 <点击快速跳转> ...
- Chrome自定义滚动条
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 16px; height: 16px; background-color: #F5 ...
- 《Java并发编程的艺术》Java并发机制的底层实现原理(二)
Java并发机制的底层实现原理 1.volatile volatile相当于轻量级的synchronized,在并发编程中保证数据的可见性,使用 valotile 修饰的变量,其内存模型会增加一个 L ...
- 关于学习python的想法
选择学习python,就是一次对自己的挑战.自己之前并没有python的基础,只是学习了一点C语言的知识.对于这个课程了解的不是很多,只是上学期在网上自学了一点,自己也是对这门语言感兴趣,所以这个学期 ...
- 加密 解密 RSA & AES & DES
git: https://github.com/XHTeng/XHCryptorTools rsa RSA加解密中必须考虑到的密钥长度.明文长度和密文长度问题.明文长度需要小于密钥长度,而密文长度则等 ...