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