暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle全表扫突发简单性能问题处理

神奇的DBA 2021-04-21
601

10日上午同事反应某系统突然响应迟钝,一开始并未在意,中午经同事处理过扔反应迟钝,遂介入处理。现象如下:



数据库CPU使用率85%(shit!),该dbserver平时负载峰值不应超过65%。有问题了。同时应用服务器报 Could not lock User prefs. Unix error code 24。两个问题叠加。两权相害取其轻,先处理oracle数据库问题吧。

        突发性能问题我选择先采样ASH报告进行分析,生成性能问题区间6分钟的报告如下:

    

    




95%的性能问题都是由问题SQL产生的,先从topSQL入手吧,这4条SQL,我选择从update这条开始入手,先生成该条语句的执行计划看下吧。


可以看到该条语句走了TABLE ACCESS FULL全表扫描,解决方法很简单一个符合索引应该可以解决

CREATE INDEX MCLAIMPROD.IDX_ID_SCODE_RESP ON MCLAIMPROD.UTIINTERFACELOG

(LOGID, SYSTEMCODE, REQRESP)

LOGGING

STORAGE    (

            BUFFER_POOL      DEFAULT

           )

NOPARALLEL

/

建立index之后的效果如下:


cost提高里N倍,再看OS的反应。




5倍左右的负载下降。


另一个问题Could not lock User prefs. Unix error code 24的解决方法也很简单

ulimit -u unlimited

这条命令可以临时解决。后续把limits.conf 修改就可以了

最后修改时间:2021-04-21 13:39:32
文章转载自神奇的DBA,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论