1.shared pool整体的大小我们可以设置
但是其中的free cache、lib cache、row cache我们分配不了。
其中容易出问题的是free cache和lib cache。
2.ora-4031错误(大量硬解析存在的时候会存在ora-4031错误)
硬解析需要保存的sql和执行计划,free的chain中找不到对应的chunck。
3.chain(内存链),链里面放的就是chunk
串(把内存块串起来)
因此内存块被串起来,因此可以从头遍历至尾
4.latch是用来保护链的
5.查看shared pool中一共产生了多少chunk
select count(*) from x$ksmsp;
6.查看
SELECT COUNT(*) FROM X$KSMSP;
SELECT COUNT(*) FROM DBA_OBJECS;(如果没有执行过,则下面再执行sql语句时会看到chunk增多)
SELECT COUNT(*) FROM X$KSMSP;
7.清空shared_pool的chunk
alter system flush shared_pool;
上面执行后,ora-4031错误解决(不治本),所有shared_pool的chunk会被清空。