oracle 动态性能视图

news2025/4/13 20:39:51

Oracle 数据库中的 V$SQLAREA 是一个动态性能视图(Dynamic Performance View),用于记录共享池(Shared Pool)中所有 SQL 语句的统计信息。每个 SQL 语句在共享池中存储为一个游标(Cursor),而 V$SQLAREA 提供了这些游标的聚合信息。

核心字段

  1. SQL_ID

    • SQL 语句的唯一标识符(哈希值),用于跟踪特定 SQL。

  2. HASH_VALUE

    • 旧版 SQL 的哈希值(与 SQL_ID 并存,但 SQL_ID 更常用)。

  3. ADDRESS

    • SQL 语句在共享池中的内存地址,常用于联合其他视图(如 V$SQLTEXT)。

  4. VERSION_COUNT

    • 共享池中该 SQL 的不同版本游标数量(如因绑定变量窥视导致的不同执行计划)。

  5. PARSING_SCHEMA_NAME

    • 解析该 SQL 的数据库用户(模式名)。

  6. EXECUTIONS

    • SQL 语句的总执行次数。

  7. FIRST_LOAD_TIME

    • SQL 首次被加载到共享池的时间戳(格式:YYYY-MM-DD HH24:MI:SS)。

  8. LAST_LOAD_TIME

    • SQL 最后一次被加载到共享池的时间戳。

  9. LAST_ACTIVE_TIME

    • SQL 最后一次执行的时间戳。

性能相关字段

  1. ELAPSED_TIME

    • 所有执行的总耗时(微秒),包括等待时间(如 I/O)。

  2. CPU_TIME

    • 所有执行消耗的 CPU 时间(微秒)。

  3. BUFFER_GETS

    • 所有执行中逻辑读(Logical Reads)的总次数。

  4. DISK_READS

    • 所有执行中物理读(Physical Reads)的总次数。

  5. ROWS_PROCESSED

    • 所有执行中处理的总行数。

  6. OPTIMIZER_COST

    • 优化器估算的 SQL 执行成本(相对值,非实际资源消耗)。

  7. FETCHES

    • 数据获取次数(通常针对查询语句)。

  8. SORTS

    • 所有执行中排序操作的总次数。

其他关键字段

  1. MODULE / ACTION

    • 应用程序通过 DBMS_APPLICATION_INFO 设置的模块名和操作名(用于追踪来源)。

  2. SQL_TEXT

    • SQL 语句的前 1000 个字符(完整 SQL 需关联 V$SQLTEXT)。

  3. PLAN_HASH_VALUE

    • 执行计划的哈希值,用于识别不同执行计划。

  4. CHILD_NUMBER

    • 子游标编号(需联合 V$SQL 使用)。

  5. SHARABLE_MEM

    • 共享内存占用量(字节)。

  6. PERSISTENT_MEM

    • 持久内存占用量(字节)。

  7. RUNTIME_MEM

    • 运行时内存占用量(字节)。

  8. IO_CELL_OFFLOAD_ELIGIBLE_BYTES

    • 可被智能扫描(Exadata)优化的 I/O 字节数(仅适用于 Exadata)。

  9. IO_INTERCONNECT_BYTES

    • 通过存储网络传输的实际 I/O 字节数。

应用场景

  • 性能分析:通过 BUFFER_GETSDISK_READSCPU_TIME 等字段识别高资源消耗的 SQL。

  • 执行计划对比:利用 PLAN_HASH_VALUE 分析同一 SQL 是否因不同执行计划导致性能差异。

  • 绑定变量问题:高 VERSION_COUNT 可能暗示绑定变量窥视(Bind Peeking)引发的问题。

  • SQL 生命周期:通过 LAST_ACTIVE_TIME 判断 SQL 是否长期未使用,以决定是否需优化或清理。

分析排序与资源竞争

通过 SORTS 和 ROWS_PROCESSED 字段,识别大量排序操作的 SQL。

 

SELECT 
    sql_id,
    sql_text,
    sorts,
    rows_processed
FROM 
    v$sqlarea 
WHERE 
    sorts > 1000  -- 排序次数超过阈值
ORDER BY 
    sorts DESC;

字段解释

  1. sql_id

    • 含义:SQL 语句的唯一标识符。

    • 作用:用于区分不同的 SQL 语句,即使 SQL 文本完全相同,Oracle 也会为每次解析生成的执行计划分配唯一的 sql_id

  2. sql_text

    • 含义:SQL 语句的文本内容。

    • 注意:由于视图 v$sqlarea 的限制,较长的 SQL 文本可能被截断。完整文本可通过 v$sqlstats.sql_fulltext 或 DBA_HIST_SQLTEXT(AWR 历史表)查看。

  3. sorts

    • 含义:该 SQL 语句在所有执行过程中触发的 排序操作总次数

    • 背景:排序通常由以下操作触发:

      • ORDER BY

      • GROUP BY

      • DISTINCT

      • 索引创建(如 CREATE INDEX

    • 性能影响

      • 若排序在内存(PGA)中完成,效率较高。

      • 若排序使用临时表空间(磁盘排序),会显著增加 I/O 开销,需优化。

  4. rows_processed

    • 含义:该 SQL 语句在所有执行过程中 处理的总行数

    • 分类

      • 对于 SELECT,表示返回的行数。

      • 对于 INSERT/UPDATE/DELETE,表示影响的行数。

      • 对于 MERGE,表示合并的行数。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue3+Vite+TypeScript+Element Plus开发-10.多用户动态加载菜单

系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 Header响应式菜单缩展 Mockjs引用与Axios封装 登录设计 登录成功跳转主页 多用户动态加载菜单 Pinia持久化 动态路由-配置 文章目录 目录 系列文档目…

前端用户列表与后端分页协同设计

分页实现方案 在现代Web应用中,用户列表展示与分页是一个常见的功能需求。前端与后端通过API协同工作,使用PageHelper等工具实现高效分页。 例如: 后端实现 (使用PageHelper) public PageResult DishPage(DishPageQueryDTO dishPageQuery…

精准测试建设过程中遇到的一些问题

1.sqlite3 仅可以处理单个任务问题,多线程往往会面临数据库锁定 因为仅临时存储,后来在创建数据库时,给每个任务开了一个临时数据库,存储数据执行完毕后,删除db sql_insert_new:INSERT INTO analyze_api_resault_dynam…

【Docker】Dockerfile 编写实践

👻创作者:丶重明 👻创作时间:2025年4月8日 👻擅长领域:运维 目录 1. Dockerfile编写原则1.1.选择合适的基础镜像1.2.镜像层优化1.3.多阶段构建1.4.安全增强 2. 关键指令与技巧2.1.COPY vs ADD2.2.ENTRYPOIN…

LabVIEW商业软件开发注意问题

在 LabVIEW 商业软件开发进程中,性能优化、界面设计及兼容性与扩展性,对软件品质、用户体验和市场适配性起着决定性作用。下面,借助多个LabVIEW 编程特性的实际案例,深入分析这些方面的开发要点。 一、性能优化:提升软…

Java 中 SQL 注入问题剖析​

一、引言​ 在当今数字化时代,数据是企业和组织的核心资产之一。许多应用程序都依赖于数据库来存储和管理数据,而 Java 作为一种广泛使用的编程语言,常被用于开发与数据库交互的应用程序。然而,SQL 注入这一安全漏洞却如同隐藏在…

深度学习项目--分组卷积与ResNext网络实验探究(pytorch复现)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 前言 ResNext是分组卷积的开始之作,这里本文将学习ResNext网络;本文复现了ResNext50神经网络,并用其进行了猴痘病分类实验…

CSS 笔记——Flexbox(弹性盒布局)

目录 1. Flex 容器与 Flex 项目 2. 主轴与交叉轴 3. Flex 容器的属性 display flex-direction justify-content align-items align-content flex-wrap 4. Flex 项目的属性 flex-grow flex-shrink flex-basis flex align-self 5. Flexbox 的优点 6. Flexbox 的…

cpp(c++)win 10编译GDAL、PROJ、SQLite3、curl、libtiff

cpp(c)编译GDAL、PROJ、SQLite3 Sqlite3libtiffcurlprojGDAL Sqlite3 1、下载 Sqlite3 源码、工具、二进制预编译 exe Sqlite3 官网:https://www.sqlite.org/download.html 下载 sqlite-amalgamation-3430200.zipsqlite-dll-win64-x64-3430…

每日一题(小白)暴力娱乐篇23

由题意得知给我们一串数字,我们每次交换两位,最少交换多少次成功得到有顺序的数组。我们以平常的思维去思考,加入给你一串数字获得最少的交换次数,意味着你的交换后续基本不会变,比如说2 1 3 5 4 中1与2交换后不变&…

01-Redis-基础

1 redis诞生历程 redis的作者笔名叫做antirez,2008年的时候他做了一个记录网站访问情况的系统,比如每天有多少个用户,多少个页面被浏览,访客的IP、操作系统、浏览器、使用的搜索关键词等等(跟百度统计、CNZZ功能一样)。最开始存储…

【从零开始学习JVM | 第一篇】快速认识JVM

什么是JVM? JVM--Java虚拟机,它是Java实现平台无关性的基石。 Java程序运行的时候,编译器将Java代码编译为平台无关的Java字节码文件(.class),接下来对应平台的JVM对字节码进行运行解释,翻译成…

使用RabbitMQ实现异步秒杀

搭建RabbitMQ 在虚拟机上用docker搭建RabbitMQ,首先拉取镜像 docker run --privilegedtrue -d -p 5672:5672 -p 15672:15672 --name rabbitmq rabbitmq:management mkdir -p /usr/local/docker/rabbitmq再创建rabbitmq容器,下面的命令已经能够创建之后…

解决华硕主板Z890m下载ubuntu20.04后没有以太网问题

问题描述: 华硕主板Z890m下载双系统ubuntu20.04后,发现ubuntu不能打开以太网。 问题原因: 华硕主板的网卡驱动是r8125,而ubuntu20.04的驱动版本是r8169,所以是网卡驱动不匹配造成 解决方案 开机界面按下F2进入BOIS模式&#…

xLua的Lua调用C#的2,3,4

使用Lua在Unity中创建游戏对象,组件: 相关代码如下: Lua --Lua实例化类 --C# Npc objnew Npc() --通过调用构造函数创建对象 local objCS.Npc() obj.HP100 print(obj.HP) local obj1CS.Npc("admin") print(obj1.Name)--表方法希…

Debian系统_主板作为路由器_测试局域网设备间网速

Debian系统_主板作为路由器_测试局域网设备间网速 一、360软件测网速 360测出来的网速实际上是宽带的速度,并不是路由器LAN口到电脑这一段的网速 二、使用iperf3 进行双向带宽测试 1、开发板端下载软件 //Debian系统或者/Ubuntu sudo apt update && sudo…

从 macos 切换到 windows 上安装的工具类软件

起因 用了很多年的macos, 已经习惯了macos上的操作, 期望能在windows上获得类似的体验, 于是花了一些时间来找windows上相对应的软件. 截图软件 snipaste​​​​​​ windows和macos都有的软件, 截图非常好用 文件同步软件 oneDrive: 尝试了不同的同步软件, 还是微软在各…

JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)

目录 JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码) 一、什么时候该使用Array.map()&#xff0…

SQL优化技术分享:从 321 秒到 0.2 秒的性能飞跃 —— 基于 PawSQL 的 TPCH 查询优化实战

在数据库性能优化领域,TPC-H 测试集是一个经典的基准测试工具,常用于评估数据库系统的查询性能。本文将基于 TPCH 测试集中的第 20个查询,结合 PawSQL 自动化优化工具,详细分析如何通过 SQL 重写和索引设计,将查询性能…

密码学基础——DES算法

前面的密码学基础——密码学文章中介绍了密码学相关的概念,其中简要地对称密码体制(也叫单钥密码体制、秘密密钥体制)进行了解释,我们可以知道单钥体制的加密密钥和解密密钥相同,单钥密码分为流密码和分组密码。 流密码&#xff0…