使用ASH信息,发现高CPUsession
ASH信息是我们Troubleshooting一个很重要的信息来源,当然,我们也不一定要收集一个ASH报告来分析,
一般从v$active_session_history可以得到想要的信息,如果前面视图里已经不存在,那么可以通过
DBA_HIST_ACTIVE_SESS_HISTORY来获取需要的信息,看个小例子:
昨天某套库的CPU使用一度达到99%,作为维护人员,我们肯定要去关注,查找原因。在主机层面没有发现异常,
那么是数据库主机,问题定位在数据库上。
select object_name, owner object_owner, status, object_type, created, last_ddl_t object_type = :"SYS_B_0" and object_name not like :"SYS_B_1" order by decode(ow owner, object_name;这么一个简单的sql,即使很多session在执行也不至于让CPU持续90%以上,而且这个sql是通过4A平台来执行,一个维护的sql,经常执行的。至于如何导致cpu如此高,因为这些连接都僵死了,但却占用的主机资源。很easy,干掉它们。