There are two types of parses (well, actually "three" these days).
They are
o HARD parse -- the query has never been seen before, isn't in the shared pool. We must parse it, hash it, look in the shared pool for it, don't find it, security check it, optimize it, etc (lots of work).
o SOFT parse -- the query has been seen before, is in the shared poo. We have to parse it, hash it, look in the shared pool for it and find it (less work then a hard parse but work none the less)
o a kinder, softer SOFT parse -- you are using session_cached_cursors (search this site for that word for info). We take your query, look in the sessions cursor cache -- find the cursor and reuse it. Very very little work.
So, after "startup", you go into sqlplus and do this:
SQL> alter session set session_cached_cursors=0; -- just making sure this is off SQL> select * from emp; -- hard parse SQL> select * from emp; -- soft parse SQL> select * from emp; -- soft parse SQL> alter session set session_cached_cursors=100; -- enable this feature SQL> select * from emp; -- soft parse SQL> select * from emp; -- kinder, gentler, soft parse
link:
http://asktom.oracle.com/pls/ask/f?p=4950:8:::::F4950_P8_DISPLAYID:801662252143

|