欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

direct path write 等待事件导致数据库hang

程序员文章站 2022-04-26 18:58:54
同事反应十几分钟前数据库好像挂起了一会,让我排查数据库是否存在什么问题。 第一反应看当前数据库还是否有什么等待事件,结果有direct path write等待事件。 于是抓了问题时间段20分钟的ASH报告,发现了direct path write居首位 再顺着看SQL,结果是这些INSERT操作 ......

同事反应十几分钟前数据库好像挂起了一会,让我排查数据库是否存在什么问题。

第一反应看当前数据库还是否有什么等待事件,结果有direct path write等待事件。

于是抓了问题时间段20分钟的ASH报告,发现了direct path write居首位

direct path write 等待事件导致数据库hang

 

再顺着看SQL,结果是这些INSERT操作

direct path write 等待事件导致数据库hang

direct path write 等待事件导致数据库hang

 

经过查看表结构,TICKETIMAGE列是BLOB类型,推测数据库在向表格里插入BLOB数据时候没有经过缓存,直接向数据库文件写数据库才造成的direct path write 等待事件

 

由于本地磁盘IO性能差,于是决定关闭oracle的这一特性,找到oracle相关参数

alter system set "_direct_path_insert_features"=1;

 

经过一段时间观察发现明显改善了不少

 

 direct path write 等待事件导致数据库hang

 

direct path write 等待事件导致数据库hang

 

附:查看Oracle隐含参数的SQL

SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ
FROM SYS.x$ksppi x, SYS.x$ksppcv y
WHERE x.inst_id = USERENV ('Instance')
AND y.inst_id = USERENV ('Instance')
AND x.indx = y.indx
AND x.ksppinm LIKE '%direct%'
/