使用ASH信息,发现高CPUsession
程序员文章站
2022-06-12 21:51:41
...
ASH信息是我们Troubleshooting一个很重要的信息来源,当然,我们也不一定要收集一个ASH报告来分析,一般从v$active_session_hist
ASH信息是我们Troubleshooting一个很重要的信息来源,当然,我们也不一定要收集一个ASH报告来分析,一般从v$active_session_history可以得到想要的信息,如果前面视图里已经不存在,那么可以通过DBA_HIST_ACTIVE_SESS_HISTORY来获取需要的信息,看个小例子:昨天某套库的CPU使用一度达到99%,作为维护人员,我们肯定要去关注,查找原因。在主机层面没有发现异常,那么是数据库主机,问题定位在数据库上。
通过如上信息,你可以判断哪些module对CPU使用贡献度最大,你肯定发现PLSQL DEVELOPER执行的sql:1qbw09atztvzn
那么我们再加入session_id来分组,哪些session在使用PLSQL DEVELOPER来执行该SQL.
这么多PLSQL DEVELOPER在执行基本同一sql。接下来,再看看改SQL:
这么一个简单的sql,即使很多session在执行也不至于让CPU持续90%以上,而且这个sql是通过4A平台来执行,一个维护的sql,经常执行的。至于如何导致cpu如此高,因为这些连接都僵死了,但却占用的主机资源。很easy,,干掉它们。