if you mean "how much does this impact me", we can measure things...
http://asktom.oracle.com/~tkyte/runstats.html
I'll get 100 copies by parsing the same sql 100 times with different sort area sizes
ops$tkyte@ORA10GR2> @test
ops$tkyte@ORA10GR2> /*
ops$tkyte@ORA10GR2>
ops$tkyte@ORA10GR2> drop table t;
ops$tkyte@ORA10GR2> create table t as select * from all_objects;
ops$tkyte@ORA10GR2> exec dbms_stats.gather_table_stats( user, 'T' );
ops$tkyte@ORA10GR2>
ops$tkyte@ORA10GR2> create or replace procedure p1( p_iters in number )
ops$tkyte@ORA10GR2> as
ops$tkyte@ORA10GR2> l_cursor sys_refcursor;
ops$tkyte@ORA10GR2> begin
ops$tkyte@ORA10GR2> for i in 1 .. p_iters
ops$tkyte@ORA10GR2> loop
ops$tkyte@ORA10GR2> execute immediate 'alter session set sort_area_size = ' || (65536+mod(i,2));
ops$tkyte@ORA10GR2> open l_cursor for select * from t auto_look_for_me;
ops$tkyte@ORA10GR2> close l_cursor;
ops$tkyte@ORA10GR2> end loop;
ops$tkyte@ORA10GR2> end;
ops$tkyte@ORA10GR2> /
ops$tkyte@ORA10GR2>
ops$tkyte@ORA10GR2> create or replace procedure p2( p_iters in number )
ops$tkyte@ORA10GR2> as
ops$tkyte@ORA10GR2> l_cursor sys_refcursor;
ops$tkyte@ORA10GR2> begin
ops$tkyte@ORA10GR2> for i in 1 .. p_iters
ops$tkyte@ORA10GR2> loop
ops$tkyte@ORA10GR2> execute immediate 'alter session set sort_area_size = ' || (65536+i*10);
ops$tkyte@ORA10GR2> open l_cursor for select * from t manual_look_for_me;
ops$tkyte@ORA10GR2> close l_cursor;
ops$tkyte@ORA10GR2> end loop;
ops$tkyte@ORA10GR2> end;
ops$tkyte@ORA10GR2> /
ops$tkyte@ORA10GR2>
ops$tkyte@ORA10GR2> exec p1(100)
ops$tkyte@ORA10GR2> exec p2(100)
ops$tkyte@ORA10GR2>
ops$tkyte@ORA10GR2> select sql_text, count(*) from v$sql where upper(sql_text) like '%\_LOOK\_FOR\_ME' escape '\' group by sql_text;
ops$tkyte@ORA10GR2> */
ops$tkyte@ORA10GR2>
ops$tkyte@ORA10GR2>
ops$tkyte@ORA10GR2> exec runstats_pkg.rs_start
PL/SQL procedure successfully completed.
ops$tkyte@ORA10GR2> exec p1(100)
PL/SQL procedure successfully completed.
ops$tkyte@ORA10GR2> exec runstats_pkg.rs_middle
PL/SQL procedure successfully completed.
ops$tkyte@ORA10GR2> exec p2(100)
PL/SQL procedure successfully completed.
ops$tkyte@ORA10GR2> exec runstats_pkg.rs_stop(100)
Run1 ran in 10 hsecs
Run2 ran in 12 hsecs
run 1 ran in 83.33% of the time
Name Run1 Run2 Diff
LATCH.cache buffers chains 296 146 -150
STAT...undo change vector size 2,768 2,388 -380
STAT...redo size 4,124 3,324 -800
LATCH.library cache pin 544 10,702 10,158
LATCH.library cache lock 906 11,064 10,158
LATCH.library cache 1,357 21,673 20,316
Run1 latches total versus runs -- difference and pct
Run1 Run2 Diff Pct
3,431 43,916 40,485 7.81%
PL/SQL procedure successfully completed.
<b>the second one with 100 copies (instead of just two) used significantly more latches, it will not scale as well</b>