August 18 2014

oracle sql监控工具

–SELECT * FROM v$statistics_level;
SQL> show parameter statistics_level

NAME                                 TYPE        VALUE
———————————— ———– ——————————
statistics_level                     string      TYPICAL
–statistics_level控制数据库收集统计信息的级别,有三个参数值:
BASIC :收集基本的统计信息
TYPICAL:收集大部分统计信息(数据库的默认设置)
ALL:收集全部统计信息

SQL> show parameter control_management_pack_access

NAME                                 TYPE        VALUE
———————————— ———– ——————————
control_management_pack_access       string      DIAGNOSTIC+TUNING
当你设置
–statistics_level = TYPICAL or ALL
–control_management_pack_access = DIAGNOSTIC+TUNING
时,如果你的SQL消耗CPU资源超过5秒,就会自动开启监控长时间的SQL
–SELECT * FROM FL_ACTIVITY_USER_1 a,FL_ACTIVITY_1 b WHERE a.uuid=b.uuid AND a.checked=’&s’
当然 你也可以强制性的使用hint
— MONITOR : 强制监视sql执行
— NO_MONITOR :防止sql被监视

SELECT /*+ MONITOR*/ * FROM FL_ACTIVITY_1

 

SELECT * FROM V$sql_monitor–这张表里的信息每秒刷新,当sql执行完毕,信息并不立即删除而是保持至少一分钟
–KEY :这一个值和存储在V$SQL_PLAN_MONITOR的相关执行计划信息关联
–STATUS:是SQL的状态有以下几种:
EXECUTING — 正在执行中
DONE (ERROR) –执行终止并且有错误
DONE (FIRST N ROWS) — 执行终止并获取了N行
DONE (ALL ROWS) — 执行终止并获取了所有行
DONE — 执行终止(并行执行)
257698037762 DONE (ALL ROWS)
579820584963 DONE (FIRST N ROWS)
803158884353 DONE (ALL ROWS)

SELECT * FROM V$SQL_PLAN_MONITOR WHERE  KEY=257698037762
–当然。这只是oracle提供了一个监视长时间在运行的sql的工具,并不建议用它来看执行计划和做优化。
–关于执行计划相关的还是请参照:http://www.ucjmh.com/%e6%b5%85%e8%b0%88%e6%89%a7%e8%a1%8c%e8%ae%a1%e5%88%92/
–这个功能真的很渣啊。。。。

–查看数据库中已经生成的监控信息可以使用DBMS_SQLTUNE包来实现
select dbms_sqltune.report_sql_monitor from dual; –和DBMS_XPLAN看的查不多



Copyright 2019. All rights reserved.

Posted 2014年8月18日 by ucjmh in category "oracle

Leave a Reply

Your email address will not be published. Required fields are marked *