Reduce parsing

  • From: Tracy Rahmlow <tracy.rahmlow@xxxxxxxx>
  • To: oracle-l@xxxxxxxxxxxxx
  • Date: Fri, 20 Mar 2009 16:09:28 -0500

The following was identified within v$sql in a 10.2.0.4 database - 

SQL> select parse_calls, executions, sql_text, module from v$sql
  2  where sql_text like '%INTADM.MASK_DATA(:V%'
  3  and module = 'POLDOC.EXE';

PARSE_CALLS EXECUTIONS 
----------- ----------  
SQL_TEXT  
--------------------------------------------------------------------------------
MODULE  
----------------------------------------------------------------  
     206855     103410  
begin :V00001 := INTADM.MASK_DATA(:V00002,:V00003,:V00004); end;  
POLDOC.EXE 

The referenced object is a function that is parsed 2x more than it is 
executed.  This is generated from a VB application.  We have other 
function calls that behave similarly (i.e., 2:1 parse to execute).  What 
would cause this statement to be parsed more than executed?  Are there any 
options (other than removing the call) to reduce the number of parse calls 
relative to the executions? 

Thanks

Other related posts: