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
博客介绍了SQL查询的三种解析类型,包括硬解析(查询未在共享池,需大量工作)、软解析(查询已在共享池,工作量较小)以及更轻量的软解析(使用session_cached_cursors,工作量极少),还给出了在sqlplus中的操作示例。

594

被折叠的 条评论
为什么被折叠?



