通过AWR结合SQLHC对性能变低的SQL进行分析的过程

news2024/11/17 3:51:31

ESTDB数据库2020/4/29下午16点附近出现业务卡顿现象。
可以发现问题SQL为(SQL_ID fr0nhywcycrsa)。占问题时段数据库资源消耗的52.69%,通过对此SQL语句的执行效率进行分析,我们发现:

对SQL_ID fr0nhywcycrsa?进行分析,可以发现此SQL存在执行速度快、慢等不同效率的SQL。通常对于此类问题可以使用SQL绑定执行计划的方法来解决。

在进行执行计划绑定后发现存在SQL未使用绑定的执行计划的情况。使用SQLHC工具进行分析,可以发现原因是数据库中存在P1BEMADM及P1FEMADM两个用户,SQL_ID fr0nhywcycrsa两个用户均在执行,即两个用户使用了相同的SQL语句。

绑定执行的原理是使SQL在执行时比如访问A1索引再到B1表的这样的过程,但是两个用户下存在索引名称不一致问题,这时在绑定执行计划时就出现了AAA用户下绑定成功,BBB用户在执行时存在无法找到A1索引问题。

同时同时两个用户下相同名称、结构的表还存在数据量巨大差异、索引名称及建索引的列不一致问题,在不同数据量时会存在使用不同执行计划时效率更好的问题,导致在绑定执行计划时无法找到一个合适的执行计划。

排查步骤如下:

1、数据库集群的基本配置信息
TESTDB系统数据库使用了Oracle RAC架构,使用了HPUX+11.2.0.4版本两节点RAC数据库,业务程序禁用了RAC的负载均衡,主要连接在数据库节点1上进行业务操作。

2.2 故障时段数据库的信息
2.2.1 性能分析(AWR/ASH报告)


由于15点到16点之间问题出现频繁,故主要以该时间段的AWR进行分析,可以发现TOP SQLfr0nhywcycrsa占用较多的CPU资源。

在故障时间段的AWR报告中,可以看到CPU使用率在平均65%左右,主要的资源消耗在看到在SQL_ID fr0nhywcycrsa,占比52%。在下面章节对此SQL执行效率进行分析。

2.2.2 问题SQL的分析
对SQL_ID fr0nhywcycrsa?进行分析,可以发现此SQL存在执行速度快、慢等不同效率的SQL。通常对于此类问题可以使用SQL绑定执行计划的方法来解决。

在进行执行计划绑定后发现存在SQL未使用绑定的执行计划的情况。使用SQLHC工具进行分析,可以发现原因是数据库中存在P1BEMADM及P1FEMADM两个用户,SQL_ID fr0nhywcycrsa两个用户均在执行,即两个用户使用了相同的SQL语句。

绑定执行的原理是使SQL在执行时比如访问A1索引再到B1表的这样的过程,但是两个用户下存在索引名称不一致问题,这时在绑定执行计划时就出现了AAA用户下绑定成功,BBB用户在执行时存在无法找到A1索引问题。

同时两个用户下相同名称、结构的表还存在数据量巨大差异的问题。

两个用户SQL执行效率以及IOT表上相关索引信息如下:

SQL不同执行计划对应的执行速度:
IOT表上索引情况:
IOT表上的数据差异:


三、总结建议与后续处理方案
3.1 故障总结分析
通过分析4/29日下午问题时段的数据,可以发现问题SQL为(SQL_ID fr0nhywcycrsa)。占问题时段数据库资源消耗的52.69%,通过对此SQL语句的执行效率进行分析,我们发现:

对SQL_ID fr0nhywcycrsa?进行分析,可以发现此SQL存在执行速度快、慢等不同效率的SQL。通常对于此类问题可以使用SQL绑定执行计划的方法来解决。

在进行执行计划绑定后发现存在SQL未使用绑定的执行计划的情况。使用SQLHC工具进行分析,可以发现原因是数据库中存在P1BEMADM及P1FEMADM两个用户,SQL_ID fr0nhywcycrsa两个用户均在执行,即两个用户使用了相同的SQL语句。

绑定执行的原理是使SQL在执行时比如访问A1索引再到B1表的这样的过程,但是两个用户下存在索引名称不一致问题,这时在绑定执行计划时就出现了AAA用户下绑定成功,BBB用户在执行时存在无法找到A1索引问题。

同时同时两个用户下相同名称、结构的表还存在数据量巨大差异、索引名称及建索引的列不一致问题,在不同数据量时会存在使用不同执行计划时效率更好的问题,导致在绑定执行计划时无法找到一个合适的执行计划。

3.2优化建议
1.目前由于P1BEMADM用户数据量大,执行效率较差主要集中在此处,因此建议首先对P1BEMADM用户下此SQL相关表及索引进行碎片整理、重建等,从底层数据存储层面进行优化;其次对于此SQL,建议进行优化后再进行SQL执行计划的绑定,保持优化后的SQL执行效率高效、稳定。

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

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

相关文章

精通推荐算法8:Embedding表征学习 -- 总体架构

1 Embedding表征学习的总体架构 目前,推荐算法精排模型大多基于Embedding MLP范式,模型底层是Embedding层,作用是将高维稀疏的输入特征转换为低维稠密的特征向量,并实现一定的模糊查找能力。模型上层是MLP层,作用是对…

鸿蒙应用模型:【Ability Kit】简介

Ability Kit简介 Ability Kit(程序框架服务)提供了应用程序开发和运行的应用模型,是系统为开发者提供的应用程序所需能力的抽象提炼,它提供了应用程序必备的组件和运行机制。有了应用模型,开发者可以基于一套统一的模…

了解可燃气体报警器的检测原理与注意事项

在工业、商业以及家庭生活中,可燃气体报警器作为安全监测的重要设备,发挥着不可忽视的作用。 那么,可燃气体报警器主要检测哪些气体呢? 接下来,佰德将从可燃气体种类、报警器工作原理、检测范围与精度、应用场景与重…

Linux_应用篇(11) 线程

上一章,学习了进程相关的知识内容, 对进程有了一个比较全面的认识和理解; 本章开始, 将学习 Linux应用编程中非常重要的编程技巧---线程(Thread) ;与进程类似,线程是允许应用程序并发…

计算机电子书籍资源转载分享

这篇会很简略,一个博主的宝藏,被我发现了,而且是去年2023年更新的,里面计算机网络的第八版书籍都有(谢希仁编著) 这是该博主的github上面发布的:zhangyachen/ComputerArchitectureAndCppBooks:…

轻松解决msvcp140_ATOMIC_WAIT.dll丢失问题的5种方法

在电脑使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp140_ATOMIC_WAIT.dll丢失”。这个错误提示通常出现在运行某些程序或游戏时,给使用者带来了很大的困扰。那么,如何解决这个问题呢?小编将为大家介绍5种…

GDPU 操作系统 天码行空13

文章目录 ❌ TODO:本文仅供参考,极有可能有误1.生产者消费者问题(信号量)💖 ProducerConsumerExample.java🏆 运行结果 💖 ProducerConsumerSelectiveExample.java🏆 运行结果 2.实现…

亮相CCIG2024,合合信息文档解析技术破解大模型语料“饥荒”难题

近日,2024中国图象图形大会在古都西安盛大开幕。本届大会由中国图象图形学学会主办,空军军医大学、西安交通大学、西北工业大学承办,通过二十多场论坛、百余项成果,集中展示了生成式人工智能、大模型、机器学习、类脑计算等多个图…

jupyter notebook更改位置

1.找到jupyer的配置文件 一般在c盘用户的.jupter文件夹下 2. 用记事本打开这个配置文件,定位到c.NotebookApp.notebook_dir /path_to_your_directory 替换你的位置 3.找到jupyer图标的位置,打开属性 添加要存放的位置在目标文件的末尾,重新…

Hadoop伪分布式安装教程

Hadoop伪分布式安装教程 一、安装背景1.1 软件列表1.2 系统软件列表 二、安装Hadoop2.1 安装 Java 环境2.1.1 前期准备2.1.2 文件传输2.1.3 解压文件2.1.4 配置 jdk 的环境变量2.1.5 输入 java、javac、java -version 命令检验 jdk 是否安装成功 2.2 Hadoop 下载地址[hadoop](h…

Unix、Linux 软件包管理快速入门对照

Linux(RHEL、Ubuntu)或者 Unix(macOS、FreeBSD)可以参看下表快速入门: 命令功能/系统Darwin (macOS)FreeBSDDebian/UbuntuRHEL(dnf yum)搜索和查找软件包brew searchpkg searchapt listyum list查看软件包…

Compose第一弹 可组合函数+Text

目标: 1.Compose是什么?有什么特征? 2.Compose的文本控件 一、Compose是什么? Jetpack Compose 是用于构建原生 Android 界面的新工具包。 Compose特征: 1)声明式UI:使用声明性的函数构建一…

基础9 探索图形化编程的奥秘:从物联网到工业自动化

办公室内,明媚的阳光透过窗户洒落,为每张办公桌披上了一层金色的光辉。同事们各自忙碌着,键盘敲击声、文件翻页声和低声讨论交织在一起,营造出一种忙碌而有序的氛围。空气中氤氲着淡淡的咖啡香气和纸张的清新味道,令人…

达梦 结果拼接=多行结果返回一列字符串.

sql 转换 查询出多行数据 (select t.PROPERTY from JD_CODING t left join DELIVERY_OF c on t.VALUE c.TYPE where t.PROPERTY stackingType group by t.PROPERTY) 更改后 转为一列的拼接字符串 ( select listagg( distinct t.PROPERTY,,) within group ( order by t.P…

RET-CLIP:眼科疾病诊断大模型

RET-CLIP:眼科疾病诊断大模型 RET-CLIP模型的工作流程和架构图表组成部分工作流程 精细拆解应用RET-CLIP模型进行糖尿病视网膜病变分级 论文:http://arxiv.org/pdf/2405.14137v1 代码:https://github.com/sStonemason/RET-CLIP RET-CLIP 是…

jsRpc js逆向远程调用加密函数

rpc介绍: RPC 全称 Remote Procedure Call——远程过程调用,简单说就是为了解决远程调用服务的一种技术,使得调用者像调用本地服务一样方便透明; 使用RPC服务就可以直接在浏览器中的页面js中注入代码,将其作为一个客户端&#xff…

UML 在 vs-code上的快速使用

UML 在 vs-code上的快速使用 1.软件准备工作2.创建第一张甘特图2.1 创建 UML文件: xxxx. puml2.2 输入甘特图代码2.3 VS code 生成甘特图 结束 。 1.软件准备工作 使用的软件为:VS CODE使用插件 : PluntUML2.创建第一张甘特图 2.1 创建 UML文件: xxxx. …

如何进一步缩短Python性能

1、问题背景 给定一个(x,y)处的节点网格,每个节点有一个值(0…255)从0开始。有N个输入坐标,每个坐标在(0…x, 0…y)的范围内。一个值Z,它定义了节点的“邻域”。增加输入坐标及其邻居节点的值。网格边缘之外的邻居被忽略。基准案例&#xff…

Android下HWC以及drm_hwcomposer普法((上)

Android下HWC以及drm_hwcomposer普法((上) 引言 按摩得全套,错了,做事情得全套,普法分析也是如此。drm_hwcomposer如果对Android图形栈有一定研究的童鞋们应该知道它是Android提供的一个的图形后端合成处理HAL模块的实现。但是在分析这个之前…

图像去雾并与其他非物理模型进行对比

matlab clear clc close all imgimread( scene1.jpg);subplot(221),imshow(uint8(img)), title(原始低照度图像”);img(::,1)255-img(::1); img(::,2)255-img(:2); img(:,:3)255-img(: 3); szsize(img); wsZ(2); hsz(1); %计算RGB取最小值后的图像darkl dark l zeros(h,w); for…