Tag Archives: dbms_shared_pool

客户数据库出现大量cache buffer chains latch

客户产品数据库上午出现了严重的性能问题,简单记录一下问题的诊断和解决过程。 可以看到,数据库的DB TIME已经涨到了非常高的地步,这说明系统正经受着非常严重的性能问题: Snap Id Snap Time Sessions Cursors/Session Begin Snap: 7170 31-3月 -12 08:00:50 395 10.5 End Snap: 7172 31-3月 -12 09:00:27 689 11.7 Elapsed: 59.61 (mins) DB Time: 17,270.93 (mins)   从TOP 5看,等待事件中最明显的是latch: cache buffers chains,从当前系统的状态也可以看到这一点: SQL> SELECT … Continue reading

Posted in ORACLE | Tagged , , , | Leave a comment

将指定SQL的执行计划从共享池删除

如果Oracle的优化器产生了某种错误的执行计划,或者我们希望Oracle对于某个SQL重新进行分析,那么就需要这个SQL的执行计划在共享池中过期,而简单的方法在10.2.0.4以后才出现。 对于以前的版本而言,最显而易见的方法莫过于直接刷新共享池,但是如果是数据库中绝大部分的SQL都存在问题,那么这种方法无可厚非,也可能是见效最快的方法,而如果数据库中仅仅是个别的SQL存在问题,那么这种方法就过于暴力了。 SQL> SELECT COUNT(*) FROM dual; COUNT(*) ———- 1 SQL> SELECT sql_id, address, hash_value, executions, loads, parse_calls, invalidations 2 FROM v$sqlarea 3 WHERE sql_text = ‘select count(*) from dual’; SQL_ID ADDRESS HASH_VALUE EXECUTIONS LOADS PARSE_CALLS INVALIDATIONS ————- —————- ———- … Continue reading

Posted in ORACLE | Tagged , , , , , | 2 Comments

安装DBMS_SHARED_POOL包

Oracle提供了一个管理共享池对象的接口——DBMS_SHARED_POOL包,不过这个包在11g以前的版本是默认没有安装的。 先看一下11.2的情况: SQL> SELECT * FROM v$version; BANNER ——————————————————————————– Oracle DATABASE 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production PL/SQL Release 11.2.0.3.0 – Production CORE 11.2.0.3.0 Production TNS FOR Solaris: Version 11.2.0.3.0 – Production NLSRTL Version 11.2.0.3.0 – Production SQL> … Continue reading

Posted in ORACLE | Tagged , , | Leave a comment