同事反应十几分钟前数据库好像挂起了一会,让我排查数据库是否存在什么问题。
第一反应看当前数据库还是否有什么等待事件,结果有direct path write等待事件。
于是抓了问题时间段20分钟的ASH报告,发现了direct path write居首位
再顺着看SQL,结果是这些INSERT操作
经过查看表结构,TICKETIMAGE列是BLOB类型,推测数据库在向表格里插入BLOB数据时候没有经过缓存,直接向数据库文件写数据库才造成的direct path write 等待事件
由于本地磁盘IO性能差,于是决定关闭oracle的这一特性,找到oracle相关参数
alter system set "_direct_path_insert_features"=1;
经过一段时间观察发现明显改善了不少
附:查看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%'
/