RE: ** keep/pin objects in sga

  • From: "Laimutis Nedzinskas" <Laimutis.Nedzinskas@xxxxxxxxxxxxx>
  • To: <ajoshi9777@xxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 2 Nov 2006 15:59:56 -0000

Pinning individual sql is a pain. A fuzzy science. IMHO, unless it is really 
needed for some well identified sql then you are better off letting Oracle to 
manage it. You can greatly help Oracle accomplish this by buying more RAM for 
the shared pool. 1G shared pool is not uncommon.
I can explain my point: 
A) Caching. if sql is really often used then Oracle *must* keep it in the 
pool(cache) because it is hot(warm) 
If it is not then Oracle should be able to push out this sql to make space. 
B) Fragmentation. Unfortunetely (or fortunetely) Oracle has no concept of 
compiled(stored) SQL (like DB2 has for example) This means that you can pin SQL 
after DB startup and/or pool flush only after it arrives into the pool. The SQL 
you want to pin may arrive N-hours after database is started. So what? The pool 
gets fragmented long before. I think that by pinning this SQL you fragment the 
pool even more because from my understanding Oracle is not able to 
relocated(well, push out of pool) this SQL any more, is it? Hope I am wrong. 
Conclusion: given todays coding culture I do not think much can be done except 
of allocating large enough pool. This reduces some pool problems and does not 
introduce to many others.


From: A Joshi [mailto:ajoshi977@xxxxxxxxx] 
Sent: 2. nóvember 2006 15:45
To: Laimutis Nedzinskas; oracle-l@xxxxxxxxxxxxx
Subject: RE: ** keep/pin objects in sga

Thanks Laimutis and  Mark Bobak, jame tong, Eagle fan, Tanel Poder, Beranrd 
I looked at everything. I think cursor_space_for_time will not suit our env 
going by what Tanel said. About sessions_cached_cursors according to metalink 
note 208857.1 sql I used to see the recommendation : it suggests the current 
value of 300 is fully used and could be candidate for increase. However, from 
below document
by bjorn ensig of miracle it says : 'There is some overhead in CPU, effectively 
making this parameter useless for values higher than 50-100. 
So am trying to decide which way to go : high or low. I think if it could help 
with memory so should I reduce it. 
I think apart from that I am trying to pin objects and pinning 
package,package body,function,procedure,  trigger,type, sequence
 I think individual sql can also be pinned but I do not know how easy and 
beneficial that is. Is there anything else I can pin? 
I am planning to set 
_kghdsidx_count to 1 explicitly. I assume there is no issue with that. It is 
having 2 subpool now. I do not know in what way 2 subpool helps. 
Thanks for all the help.

Laimutis Nedzinskas <Laimutis.Nedzinskas@xxxxxxxxxxxxx> wrote:

        Take a look at this too:
        It is really one of the best explanations I´ve ever seen. At least it 
sounds close to what Oracle programmers really did.


        From: oracle-l-bounce@xxxxxxxxxxxxx 
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of jame tong
        Sent: 24. október 2006 07:43
        To: ORACLE-L
        Subject: Re: ** keep/pin objects in sga
        have a read at this document .


Cheap Talk? Check out Yahoo! Messenger's low PC-to-Phone call rates. 


Other related posts: