ORACLE实时SQL监控视图

 引言

       实时的SQL监控(Real Time SQL Monitoring)是Oracle 11g的一个新特性,它是一项强大的工具,用于监视和分析正在执行的SQL语句的性能和执行计划。该功能允许我们实时地跟踪SQL查询的执行过程,以及了解其资源消耗、等待事件和执行计划等关键指标。

        在当今数据密集型应用环境下,实时SQL监控对于确保Oracle数据库的高效运行至关重要。Oracle数据库提供了多种强大的工具和视图,使我们能够深入了解SQL语句的执行情况、性能指标以及资源消耗情况。

 

        在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执行完毕,信息并不会立即从V$SQL_MONITOR中删除,至少会保留1分钟。V$SQL_PLAN_MONITOR视图中的执行计划信息也是每秒更新一次,当SQL执行完毕,它们同样至少被保留1分钟。

视图主要字段说明

SQL_ID表示SQL语句的唯一标识符。通过该字段可以唯一标识和区分不同的SQL语句。
SQL_EXEC_START表示SQL语句的执行开始时间。该字段用于标识SQL语句执行的起始时间点
SQL_EXEC_ID表示SQL语句执行的ID。对于同一SQL语句的多次执行,该字段的值会不同,用于区分不同的执行实例。
SQL_PLAN_HASH_VALUE表示SQL语句执行计划的哈希值。执行计划是描述SQL查询优化和执行方式的关键信息,通过哈希值可以唯一标识不同的执行计划。
SQL_TEXT表示SQL语句的文本内容。该字段包含了完整的SQL查询语句。
ELAPSED_TIME

表示SQL语句的总执行时间。该字段用于衡量SQL查询的总体执行效率。

CPU_TIME表示SQL语句消耗的CPU时间。该字段用于衡量SQL查询在CPU资源上的消耗。
IO_INTERCONNECT_BYTES表示SQL语句执行期间的I/O互连字节数。该字段用于衡量SQL查询涉及的数据传输量。

        除了上述列外,V$SQL_MONITOR视图还提供了其他与SQL查询执行相关的列,例如等待事件、锁定信息、并行度等。这些信息可以帮助我们深入了解SQL语句的性能特征,从而进行性能分析和优化。

查询SQL语句消耗的资源信息

        

SELECT s.sql_id,
       s.sql_exec_start,
       s.sql_exec_id,
       s.elapsed_time,
       s.cpu_time,
       s.io_interconnect_bytes,
       s.sql_text
FROM v$sql_monitor s;

        上述查询语句将返回V$SQL_MONITOR视图中的以下列信息:

sql_idSQL语句的唯一标识符。
sql_exec_startSQL语句执行的开始时间。
sql_exec_idSQL语句执行的ID。
elapsed_timeSQL语句的总执行时间。
cpu_timeSQL语句消耗的CPU时间。
io_interconnect_bytesSQL语句执行期间的I/O互连字节数
sql_text表示SQL语句的文本内容。该字段包含了完整的SQL查询语句。

        用户可以通过查询V$SQL_MONITOR视图获得实时的SQL监控数据,并将其用于性能分析和调优;通常,可以通过JOIN操作将V$SQL_MONITOR视图与其他相关性能视图(如V$SQL、V$SQL_PLAN等)结合使用,以获取更全面的性能信息

获取SQL监控报告

        例:强制监控一条查询语句

select /*+ monitor */ count(*) from SYS.ACCESS$;

        查询V$SQL_MONTOR视图并获取需要生成报告的SQL_ID;除了可以生成TEXT格式,还可以生成HTML,ACTIVE

SELECT s.sql_id, s.sql_exec_start, s.sql_exec_id, s.elapsed_time, s.cpu_time, s.io_interconnect_bytes, s.sql_text FROM v$sql_monitor s;

        生成指定SQL_ID的SQL监控TEXT报告

SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR('4f9fbrbgh3c67') FROM DUAL ;

SQL Monitoring Report

SQL Text
------------------------------
select /*+ monitor */ count(*) from sys.ACCESS$

Global Information
------------------------------
 Status              :  DONE (ALL ROWS)     
 Instance ID         :  1                   
 Session             :  SYS (9:62224)       
 SQL ID              :  4f9fbrbgh3c67       
 SQL Execution ID    :  16777217            
 Execution Started   :  06/13/2023 16:32:58 
 First Refresh Time  :  06/13/2023 16:32:58 
 Last Refresh Time   :  06/13/2023 16:32:59 
 Duration            :  1s                  
 Module/Action       :  navicat.exe/-       
 Service             :  orcl                
 Program             :  navicat.exe         
 Fetch Calls         :  1                   

Global Stats
================================================================
| Elapsed |   Cpu   |    IO    | Fetch | Buffer | Read | Read  |
| Time(s) | Time(s) | Waits(s) | Calls |  Gets  | Reqs | Bytes |
================================================================
|    0.26 |    0.02 |     0.24 |     1 |    456 |   41 |   3MB |
================================================================

SQL Plan Monitoring Details (Plan Hash Value=2244184632)
=================================================================================================================================================
| Id |        Operation        |   Name    |  Rows   | Cost |   Time    | Start  | Execs |   Rows   | Read | Read  | Activity | Activity Detail |
|    |                         |           | (Estim) |      | Active(s) | Active |       | (Actual) | Reqs | Bytes |   (%)    |   (# samples)   |
=================================================================================================================================================
|  0 | SELECT STATEMENT        |           |         |      |         1 |     +1 |     1 |        1 |      |       |          |                 |
|  1 |   SORT AGGREGATE        |           |       1 |      |         1 |     +1 |     1 |        1 |      |       |          |                 |
|  2 |    INDEX FAST FULL SCAN | I_ACCESS1 |   30515 |   29 |         1 |     +1 |     1 |     105K |   41 |   3MB |          |                 |
=================================================================================================================================================

总结

        V$SQL_MONITOR是Oracle数据库中用于实时监控正在执行的SQL语句的动态性能视图。它提供了关于SQL语句执行的详细信息,包括执行计划、资源消耗和等待事件等。通过查询V$SQL_MONITOR视图,可以获取实时的SQL监控数据,帮助用户进行性能分析和调优

        PIGOSS BSM将不断完善对Oracle数据库的监控,结合专业DBA的经验,并且与一线运维人员是使用场景紧密结合。不仅能监控到oracle的关键性能指标信息,而且通过丰富的图表将数据库的各项指标运行状态直观地展现给用户,帮助用户全面了解oracle的健康状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/42863.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP登陆/php登录--【强撸项目】

强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 上效果图phpStudy 设置导数据库 项目目录如图:页面代码后台代码 这么丑的界面能忍?配套资源作业: 本系列校训 用免费公开视频&#xff0…

macOS 源码编译 Percona XtraBackup

percona-xtrabackup-2.4.28.tar.gz安装依赖 ╰─➤ brew install cmake ╰─➤ cmake --version cmake version 3.27.0brew 安装 ╰─➤ brew update╰─➤ brew search xtrabackup > Formulae percona-xtrabackup╰─➤ brew install percona-xtrabackup╰─➤ xtr…

投个 3D 冰壶,上班玩一玩

本篇文章将介绍如何使用物理引擎和图扑 3D 可视化技术来呈现冰壶运动的模拟。 Oimo.js 物理引擎 Oimo.js 是一个轻量级的物理引擎,它使用 JavaScript 语言编写,并且基于 OimoPhysics 引擎进行了改进和优化。Oimo.js 核心库只有 150K ,专门用…

基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计

1 主要内容 该程序对应文章《Power System Dynamic State Estimation Using Extended and Unscented Kalman Filters》,电力系统状态的准确估计对于提高电力系统的可靠性、弹性、安全性和稳定性具有重要意义,虽然近年来测量设备和传输技术的发展大大降低…

2816. 判断子序列

题目链接&#xff1a; 自己的做法&#xff1a; #include <bits/stdc.h>using namespace std;const int N 1e5 10; int a[N], b[N]; int main() {int n, m;bool flag true;scanf("%d%d", &n, &m);for (int i 0; i < n; i) scanf("%d"…

【并发专题】阻塞队列BlockingQueue实战及其原理分析

目录 前置知识队列有界队列、无界队列Queue——队列在JAVA里面的接口 阻塞队列介绍BlockingQueue——阻塞队列在JAVA里面的接口阻塞队列的应用场景JUC包下的阻塞队列 课程内容*一、ArrayBlockingQueue基本介绍应用场景使用示例基本原理数据结构核心源码解析双指针与环形数组 *二…

内存的五大分区(自用水文)

1、堆区&#xff08;heap&#xff09;——由程序员分配和释放&#xff0c; 若程序员不释放&#xff0c;程序结束时一般由操作系统回收。注意它与数据结构中的堆是两回事 2、栈区&#xff08;stack&#xff09;——由编译器自动分配释放 &#xff0c;存放函数的参数值&#xff0…

Android图形系统之SurfaceFlinger/OpenGL/HWC/Gralloc/FrameBufer/ION/GPU等关系(十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

【C++】多态案例— —计算器类

author&#xff1a;&Calton tag&#xff1a;C topic&#xff1a;【C】多态案例— —计算器类 website&#xff1a;黑马程序员C date&#xff1a;2023年7月23日 目录 多态概要 案例实现 原理剖析 多态概要 多态是C三大特性之一&#xff08;封装、继承、多态&#xff…

【SpringBoot项目】Tomcat started on port(s): 8080 (http) with context path ‘‘

运行程序后出现下面的错误&#xff0c;并且在postman中无法获取到数据 在idea中的错误显示的如下 本人的原因是忘记在Controller中忘记写&#xff01;&#xff01;&#xff01;&#xff01; RestController 如果你不是以下原因可以参考下面的文章&#xff1a; Initializing S…

在VSCode中实现Rust编程调试指南

在 VS Code 中调试 Rust&#xff1a;终极指南 在本教程中&#xff0c;您将学习如何使用 VS Code 调试 Rust。可用于使用 VS Code 调试 Rust 的操作。设置 VS Code 来调试 Rust Rust因其易用性、安全性和高性能而继续保持其作为最受欢迎的编程语言的地位。随着 Rust 的流行&…

MySQL 的 crash-safe浅谈

MySql执行流程 MySQL作为当下最流行的开源关系型数据库&#xff0c;有一个很关键和基本的能力&#xff0c;就是必须能够保证数据不会丢。那么在这个能力背后&#xff0c;MySQL是如何设计才能保证不管在什么时间崩溃&#xff0c;恢复后都能保证数据不会丢呢&#xff1f;有哪些…

【期末课程设计】学生成绩管理系统

因其独特&#xff0c;因其始终如一 文章目录 一、学生成绩管理系统介绍 二、学生成绩管理系统设计思路 三、源代码 1. test.c 2. Student Management System.c 3.Stu_System.c 4.Teacher.c 5.Student Management System.h 前言&#xff1a; 学生成绩管理系统含教师…

基于PySceneDetect的视频场景变换侦测与处理

剪映中集成了一个智能镜头分割的功能,其实是基于python的三方库PySceneDetect来实现的,主要用于对视频进行分析,寻找场景切换或剪辑。 不过一个一个处理起来比较麻烦,这里介绍一个python的三方库实现自动化批量处理。 文章目录 PySceneDetect主要功能特征PySceneDetect的安…

[golang gin框架] 40.Gin商城项目-微服务实战之Captcha验证码微服务

本次内容需要 gin框架基础知识, golang微服务基础知识才能更好理解 一.Captcha验证码功能引入 在前面,讲解了微服务的架构等,这里,来讲解前面商城项目的 Captcha验证码 微服务 ,captcha验证码功能在前台,后端 都要用到 ,可以把它 抽离出来 ,做成微服务功能 编辑 这个验证码功能…

windows下搭建php开发环境

http://wed.xjx100.cn/news/139397.html?actiononClick https://www.bilibili.com/read/cv23429835/ https://www.php.cn/faq/498307.html 安装iis 选择卸载程序 安装php 官网https://www.php.net/下载 选择线程安全 国内地址 下载完成后解压放到想存放的路径 添加p…

基于SaaS模式的Java基层卫生健康云HIS系统源码【运维管理+运营管理+综合监管】

云HIS综合管理平台 一、模板管理 模板分为两种&#xff1a;病历模板和报表模板。模板管理是运营管理的核心组成部分&#xff0c;是基层卫生健康云中各医疗机构定制电子病历和报表的地方&#xff0c;各医疗机构可根据自身特点特色定制电子病历和报表&#xff0c;制作的电子病历…

VUE3 语法教程

vue3 起步 刚开始学习 Vue&#xff0c;我们不推荐使用 vue-cli 命令行工具来创建项目&#xff0c;更简单的方式是直接在页面引入 vue.global.js 文件来测试学习。 Vue3 中的应用是通过使用 createApp 函数来创建的&#xff0c;语法格式如下&#xff1a; const app Vue.crea…

【LeetCode每日一题合集】2023.7.17-2023.7.23(离线算法 环形子数组的最大和 接雨水)

文章目录 415. 字符串相加&#xff08;高精度计算、大数运算&#xff09;1851. 包含每个查询的最小区间⭐⭐⭐⭐⭐解法1——按区间长度排序 离线询问 并查集解法2——离线算法 优先队列 874. 模拟行走机器人&#xff08;哈希表 方向数组&#xff09;918. 环形子数组的最大和…

ts中setState的类型

两种方法: 例子: 父组件 const [value, setValue] useState(); <ChildsetValue{setValue} />子组件 interface Ipros {setValue: (value: string) > void } const Child: React.FC<Ipros> (props) > {}
最新文章