当前位置: 首页 > news >正文

enq: HW - contention事件来啦

业务系统反应数据库慢,根据时间查看awr报告。
在这里插入图片描述

先看一眼事件名称
在这里插入图片描述

HW enqueue 用于序列化超出段高水位线的空间分配。如果同时向对象添加大量数据,则多个进程可能同时尝试在高水位线上方分配空间,从而导致争用。

既然是控制资源并发的enq,那么相关信息还可看
在这里插入图片描述
利用ash的便利性,直接看
在这里插入图片描述
这里有事件和p1 p2 p3
根据p2 了解一下发生热点的表空间

select name from v$tablespace where ts#= &p2 ;

在这里插入图片描述
根据p3 看看所在文件

select DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(&p3) FILE#,DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(&p3) BLOCK# from dual;

在这里插入图片描述
然后定位到具体对象

select owner, segment_type, segment_name
from dba_extents
where file_id = 5 and 618 between block_id and block_id + blocks - 1and tablespace_name = (select name from ts$ where ts#= &p2);

其实ash中早已给出明确信息
在这里插入图片描述
如果当前还在发生,可以找一下阻塞源头

SELECT distinct w.HW, w.p2 OBJECT_ID, l.inst_id, l.sid, l.lmode, l.requestFROM ( SELECT p2, p3, 'HW-'||substr(p2raw,-8)||'-'||lpad(p3,8,'0') HWFROM v$session_wait WHERE event='enq: HW - contention'and state='WAITING') W, gv$lock LWHERE l.type(+)='HW'and l.id1(+)=w.p2and l.id2(+)=w.p3ORDER BY hw, lmode desc, request desc
;

或者看当前涉及哪些对象

select DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(ID2) FILE#,
DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(ID2) BLOCK#
from v$lock
where type = 'HW';

频繁扩展空间有可能会导致此事件,可以提前扩展。

alter table t1 allocate extent (size 8G);

如果涉及对象含有blob字段,可以通过一次初始化多个chunk来解决

 Alter system set events '44951 TRACE NAME CONTEXT FOREVER, LEVEL 1024';

这里的level可以是128,512 or 1024。
执行alter system之前一定要检查当前是否设置了其他event

col name for a12
col value for a50
select inst_id, name, value from gv$parameter where name like 'event%';

也可以提前分配

ALTER TABLE <lob_table>
MODIFY LOB (<column_name>) (allocate extent (size <extent size>));

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • fme从json中提取位置到kml中
  • react引入高德地图并初始化卫星地图
  • 【Go - 编译:浅尝辄止 】
  • 华为云全域Serverless技术创新:全球首创通用Serverless平台被ACM SIGCOMM录用
  • Android进阶之路 - 解决WebView加载H5时软键盘遮挡输入框问题
  • python的多线程
  • 自动化部署的艺术:Conda包依赖管理的终极指南
  • 从传统监控到智能化升级:EasyCVR视频汇聚平台的一站式解决方案
  • 春秋云境 | 文件上传 | CVE-2022-28525
  • linux文本处理命令:文本搜索工具grep详解
  • C++ | Leetcode C++题解之第322题零钱兑换
  • 【Docker学习记录】
  • 基于ESP32的掌上网关智能家居控制设备:集成MQTT、后端Node.js、MongoDB、React(代码示例)
  • IntelliJ IDEA 打包教程
  • marker - PDF 转 markdown
  • ES6指北【2】—— 箭头函数
  • bearychat的java client
  • Debian下无root权限使用Python访问Oracle
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • happypack两次报错的问题
  • Js基础知识(一) - 变量
  • mysql常用命令汇总
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • unity如何实现一个固定宽度的orthagraphic相机
  • vue-router 实现分析
  • webgl (原生)基础入门指南【一】
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 将 Measurements 和 Units 应用到物理学
  • 深度学习中的信息论知识详解
  • 使用 QuickBI 搭建酷炫可视化分析
  • 一个项目push到多个远程Git仓库
  • 1.Ext JS 建立web开发工程
  • ​​​​​​​​​​​​​​Γ函数
  • #Java第九次作业--输入输出流和文件操作
  • #QT(QCharts绘制曲线)
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (7) cmake 编译C++程序(二)
  • (Python第六天)文件处理
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (四)进入MySQL 【事务】
  • (四)模仿学习-完成后台管理页面查询
  • (算法)求1到1亿间的质数或素数
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (一) storm的集群安装与配置
  • (一)RocketMQ初步认识
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .mysql secret在哪_MySQL如何使用索引
  • .net 7 上传文件踩坑
  • .net Application的目录
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件