Rapidez enlas consultas
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
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
Claro que si te puedo decir, tu mismo lo has dicho, te demora porque le quitaste el signo (+).
Siguiente pregunta
Siguiente pregunta
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\'));
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\'));
