查询正在运行的Top SQL的脚本(建议收藏)

在这里插入图片描述

这篇文章提供了一些现成的SQL脚本,通过查询V$SQLSTATS视图找到正在运行的TOP SQL,用于后续的优化。建议大家收藏,需要查询TOP SQL时直接复制和粘贴即可。

之前的一篇文章解释了为什么要使用V$SQLSTATS视图。

当数据库表现出各种不同的性能问题的症状时,您可以通过调整SQL语句中WHERE条件来查询需要优化的SQL。下面是一些例子:

  • 对于高I/O,按照‘DISK_READS’降序排列结果。
  • 对于高CPU使用率,按照‘BUFFER_GETS’降序排列结果。
  • 对于SQL语句解析过多的现象,按照‘PARSE_CALLS’降序排列结果。
  • 对于内存出现压力的现象,按照‘SHAREABLE_MEM’降序排列结果。

按Buffer Gets降序排列TOP SQL:

set linesize 150
set pagesize 100
col sql_text form a50
SELECT * FROM
(SELECT SQL_ID,substr(sql_text,1,50) sql_text,trunc(ELAPSED_TIME/executions) ELAPSED_TIME_PER,
        executions,buffer_gets,trunc(buffer_gets/executions) gets_per        
   FROM V$SQLSTATS
  WHERE buffer_gets > 10000 and executions<>0
 ORDER BY buffer_gets DESC)
WHERE rownum <=10;

Elapsed time的单位是微秒,一微秒等于一百万分之一秒。

关于号主,姚远:

  • Oracle ACE(Oracle和MySQL数据库方向)
  • 华为云最有价值专家
  • 《MySQL 8.0运维与优化》的作者
  • 拥有 Oracle 10g、12c和19c OCM等数十项数据库认证
  • 曾任IBM公司数据库部门经理
  • 20+年DBA经验,服务2万+客户
  • 精通C和Java,发明两项计算机专利

按物理读降序排列TOP SQL:

set linesize 150
set pagesize 100
col sql_text form a50
SELECT * FROM
(SELECT SQL_ID,substr(sql_text,1,50) sql_text,trunc(ELAPSED_TIME/executions) ELAPSED_TIME_PER,
        executions,disk_reads,trunc(disk_reads/executions) reads_per        
   FROM V$SQLSTATS
  WHERE disk_reads> 1000 and executions<>0
 ORDER BY disk_reads DESC)
WHERE rownum <=10;

按执行次数降序排列TOP SQL:

set linesize 150
set pagesize 100
col sql_text form a50
SELECT * FROM
(SELECT SQL_ID,substr(sql_text,1,50) sql_text,trunc(ELAPSED_TIME/executions) ELAPSED_TIME_PER,
        executions,rows_processed,trunc(rows_processed/executions) rows_per        
   FROM V$SQLSTATS
  WHERE executions> 100 and executions<>0
 ORDER BY executions DESC)
WHERE rownum <=10;

按解析次数降序排列TOP SQL:

set linesize 150
set pagesize 100
col sql_text form a50
SELECT * FROM
(SELECT SQL_ID,substr(sql_text,1,50) sql_text,trunc(ELAPSED_TIME/executions) ELAPSED_TIME_PER,
        executions,parse_calls     
   FROM V$SQLSTATS
  WHERE parse_calls> 100 and executions<>0
 ORDER BY parse_calls DESC)
WHERE rownum <=10;

按使用内存降序排列TOP SQL:

set linesize 150
set pagesize 100
col sql_text form a50
SELECT * FROM
(SELECT SQL_ID,substr(sql_text,1,50) sql_text,trunc(ELAPSED_TIME/executions) ELAPSED_TIME_PER,
        executions,sharable_mem
   FROM V$SQLSTATS
  WHERE sharable_mem> 1048576 and executions<>0
 ORDER BY sharable_mem DESC)
WHERE rownum <=10;

上述查询是汇总SQL在所有执行中消耗的资源来识别TOP SQL。在某些情况下,例如当应用程序的代码不使用绑定变量时,根据SQL在单次执行中消耗的资源作为标准来查询TOP SQL可能更恰当。

下面的例子根据单次执行中的Buffer Gets来查找TOP SQL:

set linesize 150
set pagesize 100
col sql_text form a50
SELECT * FROM
(SELECT SQL_ID,substr(sql_text,1,50) sql_text,trunc(ELAPSED_TIME/executions) ELAPSED_TIME_PER,
        executions,buffer_gets,trunc(buffer_gets/executions) gets_per        
   FROM V$SQLSTATS
  WHERE buffer_gets > 100 and executions<>0
 ORDER BY gets_per  DESC)
WHERE rownum <=10;

上面是一些查询TOP SQL的例子,您可以根据您的数据库的特定情况,稍作修改后生成更适合的查询脚本。

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

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

相关文章

MATLAB环境基于健康指标(Health indicator)的滚动轴承故障诊断

轴承的剩余使用寿命RUL预测过程一般包括以下三个步骤&#xff1a;&#xff08;1&#xff09;数据采集&#xff0c;&#xff08;2&#xff09;健康指标HI构建&#xff0c;&#xff08;3&#xff09;RUL预测。在预测过程中&#xff0c;RUL并不能直接依靠观测得到&#xff0c;其主…

智慧水务:雨季山区水域水务智能化监控与监测管理方案

一、方案背景 雨季的水务管理对于各区县来说&#xff0c;无疑是一项至关重要的任务。夏季雨水充沛&#xff0c;江河湖泊水位上涨&#xff0c;山洪、上游排水等情况时有发生&#xff0c;给各地的水务设施和防汛工作带来了严峻的挑战。针对区县的各类水域监管场景&#xff0c;需…

欧润金:抗衰生意火爆?抗老制品受富裕中产追捧,抢购难求!

当人们物质财富积累到一定程度后&#xff0c;他们开始踏上“用金钱留住时间”的探寻之路。 亚马逊创始人贝索斯为解锁“青春密码”&#xff0c;投资30亿美元建造生物研究所Alots&#xff1b;硅谷富豪莱恩约翰逊每年豪掷上百万美元&#xff0c;用于自己的健康管理&#xff1b;世…

JavaSE—IO流之字符流

&#x1f4cc; 字符流中的常用类及基本方法&#xff1a; 输入字符流 Reader输出字符流 Writer ○ Reader 的基本方法&#xff1a; • 读取一个字符并以整数的形式返回, 如果返回-1已到输入流的末尾。 int read() throws IOException • 读取一系列字符并存储到一个数组buff…

OPPO案例 | Alluxio在DataAI湖仓一体的实践

分享嘉宾&#xff1a; 付庆午-OPPO数据架构组大数据架构师 在OPPO的实际应用中&#xff0c;我们将自研的Shuttle与Alluxio完美结合&#xff0c;使得整个Shuttle Service的性能得到显著提升&#xff0c;基本上实现了性能翻倍的效果。通过这一优化&#xff0c;我们成功降低了约一…

【免费】教你如何考取腾讯云《云函数 SCF》认证

云函数 SCF考试PC网址 云函数 SCF - 认证中心 - 腾讯产业互联网学堂 (tencent.com) 注&#xff1a;免费认证&#xff0c;里面包含免费的课程&#xff0c;浏览器用Edge。 文章目录 目录 文章目录 前言 一、备考流程 二、注意事项 总结 前言 随着云计算的不断发展&#xf…

基于word2vec+LSTM模型实现百度贴吧恶意评论预测

大家好&#xff0c;我是带我去滑雪&#xff01; Word2Vec模型能够将词语映射到高维空间中的向量表示&#xff0c;同时保留了词语之间的语义信息和上下文关系。这使得模型能够更好地理解评论中的语境和含义。LSTM模型是一种适用于处理序列数据的深度学习模型&#xff0c;能够有效…

面对淘天的升级,如果说我们要在渠道运营端口做出一些改变,最重要、最应该、最优先的是什么?|淘天商品API数据采集接口

2024年&#xff0c;电商真正跨入了新AI时代。 在这个新时代&#xff0c;工具、方法、体系……都在升级&#xff0c;堪称一日千里。 商家如何更好地顺应时代的变化&#xff1f;2024年&#xff0c;我给大家的建议总结为两句话。 第一句是借平台的红利&#xff1b; 第二句是建立自…

【VTKExamples::Points】第十期 NormalEstimation

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例NormalEstimation,并解析接口vtkPCANormalEstimation,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力…

I.MX6ULL_Linux_驱动篇(55)linux 网络驱动

网络驱动是 linux 里面驱动三巨头之一&#xff0c; linux 下的网络功能非常强大&#xff0c;嵌入式 linux 中也常常用到网络功能。前面我们已经讲过了字符设备驱动和块设备驱动&#xff0c;本章我们就来学习一下linux 里面的网络设备驱动。 嵌入式网络简介 网络硬件接口 首先…

【C语言】tcp_sendmsg_locked

一、讲解 tcp_sendmsg_locked 函数是 Linux 内核中实现 TCP 数据发送的一个核心函数。这个函数被调用来将用户空间的数据通过 TCP 发送出去。以下是该函数的基本工作流程的中文解释&#xff1a; 1. 函数初始化和检查&#xff1a; - 它首先检查是否使用了 TCP 零拷贝发送&am…

【微服务】Spring Boot 版本升级到 2.7.18

前言 目前项目上扫描出一些 Java 依赖的代码漏洞&#xff0c;需要对现有依赖版本升级&#xff0c;记录一下遇到的问题。 <spring-boot.version>2.3.2.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR9</spring-cloud.version> <s…

RuoYi-Vue-Plus(登录流程-验证码生成)

一、登录流程 1- 进入登录页面&#xff0c;调用 com.ruoyi.web.controller.common.CaptchaController 类中的 captchaImage 方法&#xff0c;生成base64的图片 以及 UUID 2- 提交 登录信息 验证码 uuid 比对 错误&#xff1a;返回错误信息&#xff0c;删除缓存的验证码 成功…

一个优秀的开源ChatGpt外壳项目(lobe-chat)

lobe-chat 简介&#xff1a; 开源、现代化设计的 ChatGPT/LLMs 聊天应用与开发框架支持语音合成、多模态、可扩展的插件系统&#xff0c;一键免费拥有你自己的 ChatGPT/Gemini/Ollama 应用。 下载lobe-chat lobe-chat项目开源地址&#xff1a;GitHub - lobehub/lobe-chat: &am…

MySQL高可用解决方案――从主从复制到InnoDB Cluster架构

2024送书福利正式起航 关注「哪吒编程」&#xff0c;提升Java技能 文末送5本《MySQL高可用解决方案――从主从复制到InnoDB Cluster架构》 大家好&#xff0c;我是哪吒。 爱奇艺每天都为数以亿计的用户提供7x24小时不间断的视频服务。通过爱奇艺的平台&#xff0c;用户可以…

查看Linux系统重启的四种基本命令

目录 前言1. last2. uptime3. journalctl4. dmesg 前言 对于排查其原因推荐阅读&#xff1a;详细分析服务器自动重启原因&#xff08;涉及Linux、Window&#xff09; 在Linux中&#xff0c;有多种命令可以查看系统重启的信息 以下是其中一些常用的命令及其解释&#xff1a; …

跨时钟域学习记录(一)

亚稳态 亚稳态是电平介于高低电平之间的一种暂时状态。在同步系统中&#xff0c;当寄存器的信号无法满足建立时间和保持时间时&#xff0c;输出端的信号就可能出现亚稳态。在异步系统中&#xff0c;亚稳态并非一定在建立时间和保持时间无法满足时出现。   受噪声、温度、电压…

ZYNQ学习之PetaLinux开发环境搭建

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ FTP&#xff1a;File Transfer Protocol 一、Ubuntu 和 Windows 文件互传 1.1、开启 Ubu…

HarmonyOS系统开发ArkTS常用组件文本及参数(五)

目录 一、Text组件 1、Text组件案例 二、Text组件参数 1、string字符串类型 2、Resources类型 2.1、resources中内容配置 base/element/string.json 中的内容 zh_US/element/string.json 中的内容 es_US/element/string.json 中的内容 2.2、环境适配 适配英文 适配中文…

初探Ruby编程语言

文章目录 引言一、Ruby简史二、Ruby特性三、安装Ruby四、命令行执行Ruby五、Ruby的编程模型六、案例演示结语 引言 大家好&#xff0c;今天我们将一起探索一门历史悠久、充满魅力的编程语言——Ruby。Ruby是由松本行弘&#xff08;Yukihiro Matsumoto&#xff09;于1993年发明…