当前位置: 首页 > 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>));
http://www.lryc.cn/news/416559.html

相关文章:

  • MyBatis补充
  • 系统架构师(每日一练16)
  • 实践致知第17享:电脑忽然黑屏的常见原因及处理方法
  • 微信小程序--实现地图定位---获取经纬度
  • 【Python系列】使用 `isinstance()` 替代 `type()` 函数
  • 【多模态大模型】 BLIP-2 in ICML 2023
  • HPC高性能计算平台
  • 前端常用的几个工具网站
  • 支付功能之代收代付
  • QPixmap
  • Laravel门面之下:构建自定义门面应用的艺术
  • 智启万象 | 2024 Google 开发者大会直播攻略
  • 技巧:print打印内容到控制台时信息显示不全
  • 3.表的操作
  • AI回答:C#项目编译后生成部分文件的主要职责
  • RPC通信的简单流程
  • 前端发版(发包)缓存,需要强制刷新问题处理
  • 洛谷练习(8.4/8.5)
  • DLMS/COSEM中的信息安全:加密算法(下)1
  • ES6中的Promise、async、await,超详细讲解!
  • Modbus poll和Modbus Mbslave的使用
  • 树莓集团的全球化征程:数字媒体产业的本土与国际布局
  • LeetCode面试150——274H指数
  • 【Linux】Linux重定向指南:探索输出重定向与追加重定向的奥秘!
  • Spring AI -快速开发ChatGPT应用
  • Modern C++ 智能指针
  • Python的100道经典练习题,每日一练,必成大神!!!
  • 代码回滚命令
  • [ASIS 2019]Unicorn shop1
  • LangChain与泛型编程:探索代码生成的新维度