Rapidez enlas consultas

Item
03 de Julio del 2006
Hola.

Me he encontrado en Visual basic una consulta como esta:
SELECT FACT002.*, procar02 FROM ggirona.FACT002 , ggirona.PROVE02 WHERE
faccar32 BETWEEN '01/01/2005' AND '31/12/2005' AND
faccar01 = procar01(+)
ORDER BY faccar02

y al quitarle el (+) y probarlas ambas en TOAD, la que no lo tiene tarda un huevo más.

¿Me podrían decir porqué?

Gracias

eduardo
03 de Julio del 2006
Claro que si te puedo decir, tu mismo lo has dicho, te demora porque le quitaste el signo (+).

Siguiente pregunta

pmazzeia
03 de Julio del 2006
La logica dice que la que no tiene el (+) deberia tardar un poco mas.
Lo mas probable es que si corriste el query primero con el (+) y despues sin el (+) la segunda vez Oracle lleyo los bloques del buffer (que habia traido del disco cuando corriste el query la primera vez)

En general correr un query para ver cuan "rapido" va no es la mejor opcion.
Lo mejor es crear la PLAN TABLE en tu esquema (usuario)
$ORACLE_HOME/rdbms/admin/utlxplan.sql
y dspues hacer

EXPLAIN PLAN FOR
<QUERY>

Para ver como Oracle resuelve el query podes hacer :
select plan_table_output from table(dbms_xplan.display(\'plan_table\',null,\'basic\'));