shared pool subpool

  • From: "eagle fan" <eagle.f@xxxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Tue, 24 Oct 2006 12:26:55 +0800

hi:

My database version is 9.2.0.5. The share pool still has 115M free memory.

POOL        NAME                                  BYTES
----------- -------------------------- ----------------
shared pool free memory                     115,596,712


But from x$ksmss, the free memory of one subpool only has 5M

SQL> select * from x$ksmss where ksmssnam='free memory';

ADDR                   INDX    INST_ID   KSMSSLEN
KSMSSNAM                     KSMDSIDX
---------------- ---------- ---------- ---------- --------------------------
----------
000000010382A6D0          0          1    5190392 free
memory                         1
000000010382A6D0         38          1   49780448 free
memory                         2
000000010382A6D0         76          1   38853392 free
memory                         3
000000010382A6D0        114          1   21255952 free
memory                         4

And this subpool contiguously flush out chunks and caused a lot of hard
parses(from x$kghlu).

           RECURRENT  TRANSIENT    FLUSHED   PINS AND   ORA-4031 LAST ERROR
 KGHLUIDX     CHUNKS     CHUNKS     CHUNKS   RELEASES     ERRORS       SIZE
---------- ---------- ---------- ---------- ---------- ---------- ----------
        4       1404       1658      27895  627992485          0          0
        3       1064       1866      21377   69010651          0          0
        2       1384       1887      20373   81774898          0          0
        1       1248       2536    1355842  437478666       5558      27224

Why the sql goes to the subpool which has very less free memory. What's the
algorithm of subpool space management?

We have same experiences on many cases before, the only thing what we can do
is set shared_pool_size to a bigger value and bounce the database.

I tried to search internet for more shared pool internal infomation, but
only found very limited metarials.

Any ideas or metarials are appriciated.

--
Eagle Fan

Oracle DBA

Other related posts: