SQL - In versus exists

 
Vista:

In versus exists

Publicado por Nauj (12 intervenciones) el 27/10/2001 13:09:44
Hola,
Tengo una select que quiero reducir en tiempo. La tengo hecha utilizando
el operador in y me han aconsejado rehacer la sql empleando exists
en lugar de in. Se supone que esto debería reducir el tiempo, pero
en mi caso lo aumenta, quiero saber si estoy utilizando correctamente
el operador exists o se puede escribir la select de un modo que sea más
eficiente. Si alguien me puede ayudar o dar un consejillo se
lo agradezco. La tabla2 tiene como 3 veces más registros que la tabla1
y todos los campos de búsqueda son clave primaria en tabla1.

IN:
select * from tabla1 where campo1 = '0209' and campo2 = '212'
and campo3 = '000'
and campo4||campo5||campo6 in
(select distinct campo4||campo5||campo6
from tabla2 where campo1 = '0209' and campo2 = '212'
and campo3 = '000')

EXISTS:
select * from tabla1 a where a.campo1 = '0209' and a.campo2 = '212'
and a.campo3 = '000'
and exists
(select *
from tabla2 b where b.campo1 = '0209' and b.campo2 = '212'
and b.campo3 = '000'
and b.campo4 = a.campo4 and b.campo5 = a.campo5
and b.campo6 = a.campo6)


Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder