DUAL vs. FAST DUAL (_fast_dual_enabled)
Wednesday, 17.10.2007 – DejanUkoliko u izvornom kôdu često koristite DUAL tabelu, npr. “SELECT sysdate FROM dual”, interne funkcije USER, USERENV, SYS_CONTEXT ili pseudokolone (ROWID, LEVEL i td.), onda pogledajte, da li je podešen parametar “_fast_dual_enabled” i da li je postavljen na “true”, jer u verziji 10g Oracle koristi poboljšani “access path” za operacije, koje uključuju DUAL tabelu i za svaku tu operaciju štedi 3 logička I/O upita.
Dokaz:
SQL> select sysdate from dual; Execution Plan --------------------------------------------------------- 0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=2 Card=1) 1 0 FAST DUAL (Cost=2 Card=1) Statistics --------------------------------------------------------- 0 consistent gets SQL> alter session set "_fast_dual_enabled"=false; SQL> select sysdate from dual; Execution Plan --------------------------------------------------------- 0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=2 Card=1) 1 0 TABLE ACCESS (FULL) OF 'DUAL' (TABLE) (Cost=2 Card=1) Statistics ---------------------------------------------------------- 3 consistent gets
Postavite taj parametar na TRUE i uživajte.