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

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执行效率高效、稳定。

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

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

相关文章

如何解决 YUM源GPG密钥缺失:Public key for 猫头虎.rpm is not installed

如何解决 YUM源GPG密钥缺失:Public key for 猫头虎.rpm is not installed 博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝…

如何培养元技能?

如何培养元技能? 一、引言 在当今社会,仅仅依靠某一专业技能是远远不够的。我们需要拓宽自己的能力和视野,从而更好地应对日新月异的社会发展和工作需求。在这个过程中,培养元技能变得至关重要。元技能不仅有助于我们在各个领域中…

Facebook的魅力:数字时代的社交热点

在当今数字化时代,社交媒体已经成为人们日常生活中不可或缺的一部分,而Facebook作为其中的巨头,一直以其独特的魅力吸引着全球数十亿用户。本文将深入探讨Facebook的魅力所在,以及它在数字时代的社交热点。 1. 社交网络的霸主&…

【Java SE】超详细讲解String类

🥰🥰🥰来都来了,不妨点个关注叭! 👉博客主页:欢迎各位大佬!👈 文章目录 1. 初步认识String2. String类的常用方法2.1 字符串构造2.2 String对象比较2.2.1 比较是否引用同一个对象2.2…

乐鑫ESP串口驱动安装,安装cp210x驱动

windows11安装cp210x驱动: 1:第一步官网下载驱动: 官网地址如下: CP210x USB to UART Bridge VCP Drivers - Silicon Labs 第二步:解压文件夹并安装如图所示: 3:第三步安装成功后会给你个提示…

java后端框架-MyBatis

一、概述 1、起源 MyBatis本是Apache下的开源项目,名为iBatis,2010年转投谷歌,从iBatis3.x开始更名为MyBatis 2、优点 (1)优秀的数据持久层框架(对jdbc做了轻量级封装) 3、特点 (1)对jdbc中接口进行封装的同时还提供了一些自己的类实现…

怎么看qq注册时间?你的qq生日居然是这样查看的!

QQ账号就像是一个穿越时空的日记本,每一个聊天记录、每一条动态都是时间的印记。而QQ注册时间,便是这本日记本的开篇第一章,它见证了你的网络生活的起点。怎么看qq注册时间呢?别着急,接下来我将为你揭晓答案。 操作环境…

MATLAB分类与判别模型算法:基于Fisher算法的分类程序【含Matlab源码 MX_002期】

算法思路介绍: 费舍尔线性判别分析(Fishers Linear Discriminant Analysis,简称 LDA),用于将两个类别的数据点进行二分类。以下是代码的整体思路: 生成数据: 使用 randn 函数生成随机数&#x…

11. Django 常用的Web应用程序

11. 常用的Web应用程序 Django为开发者提供了常见的Web应用程序, 如会话控制, 缓存机制, CSRF防护, 消息框架, 分页功能, 国际化和本地化, 单元测试和自定义中间件. 内置的Web应用程序大大优化了网站性能, 并且完善了安全防护机制, 同时也提高了开发者的开发效率.11.1 会话控制…

IO系列(九) -什么是零拷贝

一、摘要 相信不少的网友,在很多的博客文章里面,已经见到过零拷贝这个词,会不禁的发出一些疑问,什么是零拷贝? 从字面上我们很容易理解出,零拷贝包含两个意思: 拷贝:就是指数据从…

宠物空气净化器:猫毛过敏者的终极解决方案,养猫不再是梦!

我有一位朋友,猫猫的深度爱好者。但是每当与猫咪接触的时候就会出现过敏反应,例如浑身发痒、打喷嚏、呼吸困难、起红疹等。对此,有专家给出权威的解释:引发铲屎官过敏的“罪魁祸首”是一种叫做Feld1的蛋白质成分,而这种…

性能击败99%PC用户,旗舰性能CPU 13700KF +技嘉Z790 + 德静界 机散装机配置思路分享

性能击败99%PC用户,旗舰性能CPU 13700KF 技嘉Z790 德静界 机散装机配置思路分享 又到了一年一度的618年中促销,今年的618比往年要来的更早。 很多人已经感受到,5月各大电脑相关配件都开始了今年的促销让利。 凑此机会,我又装了…

IT学习笔记--Kubernetes

kubernetes组件: 一个Kubernetes集群主要是由控制节点(master)、工作节点(node)构成,每个节点都会安装不同的组件。 master:集群的控制平面,负责集群的决策 ApiServer&#xff1a…

蓝桥杯物联网竞赛_STM32L071KBU6_对于EEPROM的新理解

EEPROM写函数: void Function_GetEepromData(){Function_EepromRead(4, BUFF);OLED_ShowChar(0, 0, BUFF[0] 0);OLED_ShowChar(0, 2, BUFF[1] 0); BUFF[0] ;BUFF[1] ;HAL_FLASHEx_DATAEEPROM_Unlock();HAL_FLASHEx_DATAEEPROM_Program(FLASH_TYPEPROGRAMDATA_WOR…

项目经理催开发进度的5大技巧

项目经理在催促开发进度时,采用的技巧对于项目成功至关重要。这不仅影响到项目的按时完成,还关系到团队的士气、效率和最终产品的质量。项目经理如果不去主动催促开发进度,可能导致项目延期,团队偏离原定路线,工作重点…

用于脑肿瘤分割的跨模态深度特征学习| 文献速递-深度学习肿瘤自动分割

Title 题目 Cross-modality deep feature learning for brain tumor segmentation 用于脑肿瘤分割的跨模态深度特征学习 01 文献速递介绍 作为最致命的流行病,脑肿瘤的研究越来越受到关注。本文研究了一种基于深度学习的自动分割胶质瘤的方法,称为脑…

java版CRM客户关系管理系统源码-CRM客户关系管理系统的技术架构与功能实现

CRM客户关系管理系统的技术架构与功能实现 一、引言 随着市场竞争的日益激烈,客户关系管理(CRM)已成为企业赢得市场、提升客户满意度、促 进业务增长的关键手段。本文旨在介绍一款先进的CRM客户关系管理系统的技术架构与功能实现&#xff0…

认识NoSql

SQL是结构化的,NoSql是非结构化的 SQL是关联的: Nosql是无关联的: SQL采用的是SQL查询: 语法固定,好处是:只要是关系型数据库(Mysql,Oracle),都能够使用相同的语句进行查…

2024年PMP考试备考需要多长时间,每天学习多长时间?

这取决于您在PMP上投入的时间和效率,通常情况下,2-3个月就够了。如果您平时工作很忙,每天可以挤出一个小时来学习;如果时间比较充裕,可以花两个小时看书、做题和参加直播课。在备考之前,要先了解PMP每年的考…

PostgreSQL数据库提权

前面讲述了mysql、SqlServer、Redis数据库相关的提权方式,有兴趣的也可以去看看。 这里讲的postgreSQL数据库提权就是任意命令执行漏洞(CVE-2019-9193)。 目录 数据库简介 漏洞原理 影响版本 漏洞利用 利用前提 漏洞复现 复现准备 复现过程 漏洞修复 数据…