【DB笔试面试670】在Oracle中,什么是SQL实时监控?

2021/4/17 2:28:32

本文主要是介绍【DB笔试面试670】在Oracle中,什么是SQL实时监控?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

640?wx_fmt=gif

         

题目         部分

在Oracle中,什么是SQL实时监控?


     


         

答案部分          


在Oracle 11g中,V$SESSION视图增加了一些新的字段,这其中包括SQL_EXEC_START和SQL_EXEC_ID,这两个字段实际上代表了Oracle 11g的一个新特性:实时的SQL监控(Real Time SQL Monitoring)。

在Oracle 11g中,当SQL并行执行时,会立即被实时监控到,或者当SQL单进程运行时,若消耗超过5秒的CPU或I/O时间,则它也会被监控到。另外,若使用/*+ monitor */提示的SQL语句,则也会被强制监控到。若使用/*+ no_monitor */提示的SQL语句则不会被监控到。监控数据被记录在V$SQL_MONITOR视图中,当然也可以通过Oracle 11g新增的包DBMS_MONITOR来主动对SQL执行监控部署。

V$SQL_MONITOR这个视图还记录了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。同时CONTROL_MANAGEMENT_PACK_ACCESS参数必须是DIAGNOSTIC+TUNING(默认设置)。

可以使用如下的SQL获取文本格式的SQL报告:

1SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR('6rqxj647ut9pn') FROM DUAL ;

     

在有外网的情况下,可以通过如下的脚本获取HTML格式的报告:

 1SET LONG 1000000
 2SET LONGCHUNKSIZE 1000000
 3SET LINESIZE 1000
 4SET PAGESIZE 0
 5SET TRIM ONS
 6SET TRIMSPOOL ON
 7SET ECHO OFF
 8SET FEEDBACK OFF
 9SPOOL report_sql_monitor.htm
10SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(sql_id=>'6rqxj647ut9pn',type=>'ACTIVE',report_level=>'ALL') AS REPORT FROM DUAL;
11SPOOL OFF

     

实时SQL监视通过HTML查看其监视报告时,具有更好的图形化的展示效果,它是基于Flash的展现,动态、图形画,让SQL的执行过程赏心悦目的展示出来,因此更加直观。如果监视的SQL语句发现具有全表扫描等执行计划的特征,或者CPU时间和I/O时间比较长,那么可以与SQL调优顾问接合起来,不但能获知性能瓶颈,而且能获得Oracle推荐的优化策略。


本文选自《Oracle程序员面试笔试宝典》,作者:小麦苗



640?wx_fmt=gif

---------------优质麦课------------

640?wx_fmt=png

详细内容可以添加麦老师微信或QQ私聊。


640?wx_fmt=gif


About Me:小麦苗      

● 本文作者:小麦苗,只专注于数据库的技术,更注重技术的运用

● 作者博客地址:http://blog.itpub.net/26736162/abstract/1/

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● QQ:646634621  QQ群:618766405

● 提供OCP、OCM和高可用部分最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

640?wx_fmt=gifDBA宝典

长按下图识别二维码或微信扫描下图二维码来关注小麦苗的微信公众号:xiaomaimiaolhr,学习最实用的数据库技术。

640?wx_fmt=gif

640?wx_fmt=gif

640?wx_fmt=png




这篇关于【DB笔试面试670】在Oracle中,什么是SQL实时监控?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程