Monday, February 04, 2008

Rolling invalidations Addendum

If you enable cursor trace for the testcase in my previous post using the method described in

The generated trace in udump will have the following

kksCheckCursor: pinning child #0 in shared mode 7d42bd0e8 7d7e87600
Failed sharing : Rolling invalidation
kksUnlockChild: releasing child
Failed sharing : 800000000000
kksSearchChildList: no suitable child found
Creating new child object #1
kksLoadChild: reload 0 child_reload 0
kksLoadChild: reload 0 child_reload 0
Compilation environment difference Failed sharing : 0
Change in cursor environment

Also the parameter _optimizer_invalidation_period does not work for statements using PQ. This can be tested by changing the degree of the table to 4 (say) and running the same test. In this case a new child cursor is generated on the first re-execution of the statement after stats are gathered even when the auto_invalidate flag is used.


Anonymous said...

Hi Fairlie ,

I read one of your blogs published about Oracle Dataguard .I have a related question . I am just trying to learn this technology. Well I have a physical Database and i have around 150 archive logs on them . Now overall space is around 15 MB of these on both the primary and the standby. Now since this is taking up too much space, I want to delete them . How can this be done ? Can I delete archive logs ?

Fairlie Rego said...

Is your question related to deleting archivelogs from the primary or the standby?

look at the RMAN archivelog deletion policy which has an option

gree said...