... Soft parse means the SQL statement is still "parse"d by the SQL engine and a search in library cache returns the parsed form successfully. I quote the word "parse" because I believe all Oracle does in this step is simply calculating the hash value of the statement and find the SQL statement in library cache based on the hash value. If it does not find it, a hard parse is performed to generate the ready-to-execute code. From http://www.ixora.com.au/q+a/0008/29164243.htm: * session cursor cache hits = no library cache access required * shared cursor cache hits = library cache hits = soft parses * shared cursor cache misses = library cache misses = hard parses This tells us that, if you set session_cached_cursors to a non-zero number (which you should), the library cache is not hit at all. The parsed form of the SQL may be in your UGA, which is a very good thing! In any case, using bind variables is good, unless you use column histograms. Yong Huang yong321 AT yahoo.com