RE: How to use dbms_shared_pool.purge for heap 6 only?

Hi Brandon,

Wow, talk about cryptic.  It took some thinking, but I think I've got it.

The "<<" operator is a binary shift.  So, 1<<0 means take the binary digit '1' 
and shift it zero positions left.  So, it's 1.  1<<6 means, take the one and 
shift it left 6 places.  So, 1000000, so, 1000000+1 = 1000001 = 0x41 = 65.

A much easier way to express it is, if you want to dump heaps 6 and one, use 
the value 2^6 + 2^1.

But, that's a hardcore C coder for you!  Let's use binary shift notation! :)

Hope that helps,

-Mark

From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Allen, Brandon
Sent: Tuesday, November 24, 2009 2:59 PM
To: 'oracle-l@xxxxxxxxxxxxx'
Subject: How to use dbms_shared_pool.purge for heap 6 only?

Does anyone know how to purge just the plan (heap 6) out of the shared pool 
with dbms_shared_pool.purge?

The documentation gives the following explanation for the heaps parameter, but 
I can't figure out what it means:

http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10577/d_shared_pool.htm#CHDCBEBB


"Heaps to be purged. For example, if heap 0 and heap 6 are to be purged:

1<<0 | 1<<6 => hex 0x41 => decimal 65, so specify heaps =>65.Default is 1, that 
is, heap 0 which means the whole object would be purged"

I understand that 0x41=65, but I don't get this part:  "1<<0 | 1<<6 => hex 
0x41" - Can anyone translate that to English?

I already checked MOS too and couldn't find any better explanation there.

Thanks,
Brandon




________________________________
Privileged/Confidential Information may be contained in this message or 
attachments hereto. Please advise immediately if you or your employer do not 
consent to Internet email for messages of this kind. Opinions, conclusions and 
other information in this message that do not relate to the official business 
of this company shall be understood as neither given nor endorsed by it.

Other related posts: