Re: way to make sql statement stay on cache (SGA) logner?

I do love this feature and that Oracle now does a lot of this, (for us DBA's who've been around a little longer...:)) automatically now, but, BUT...

Before you keep anything, please take the time to ensure they are the right things to keep... (psst, Surachart, that certain place we've been talking about, next time you should ask them about a certain developer in the UK that brought an entire production system to a standstill because he decided to keep EVERYTHING after he'd repeatedly been taken through both the keep/pin feature and the dangers of over-doing it! :))

Different environments/versions will require different edits to this script, (depending on how many average statements are executed, etc...), but it's a good starting point to review what might be best to keep and unkeep...

If that is SQL Statement, do it to be Procedure and pin in shared pool.

You can find out on Oracle Docs by search "pin sql"

DBMS_SHARED_POOL.KEEP to pin your objects.
This procedure ensures that your system does not run out of shared memory before the objects are loaded. By pinning the objects early in the life of the instance, you prevent memory fragmentation that could result from pinning a large portion of memory in the middle of the shared pool.

We have ORACLE 10GR2 on UNIX server and some of SQL statements run much longer on first after that it only run few seconds. I know the reason first time SQL statements run need parse and other things, after that SQL statement on cache (SGA) and it will run shorter. But eventually SQL statement still will be age out from SGA.