Oracle - Por que a veces in es mejor que exists?

 
Vista:

Por que a veces in es mejor que exists?

Publicado por Ricardo (84 intervenciones) el 26/09/2006 15:37:04
Amigos del foro:

Siempre creí en el paradigma de que un exists era mas performante que un in...

Ejemplo:

Tabla1:

Cliente
Factura

Tabla2:

Factura
Item
Localidad

Suponiendo que Tabla1 tiene indice por Cliente y Factura y Tabla2 tiene indice por Localidad, a veces me pasa que el siguiente query:

Select Cliente,Factura
From Tabla1
where Cliente=1
And Factura in (select factura from tabla2 where localidad=1)

Es mas performante que el siguiente:

Select Cliente,Factura
From Tabla1
where Cliente=1
And Exists (select 1 from tabla2 where tabla1.factura =tabla2.factura and localidad=1)

Alguien puede decirme por que ?

Muchas gracias
Ricardo.
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

RE:Por que a veces in es mejor que exists?

Publicado por Alejandro César (189 intervenciones) el 06/10/2006 01:34:01
Lea acá compañero:

http://asktom.oracle.com/pls/ask/f?p=4950:1:3002275308160207703:pg_R_576301530530070&pg_min_row=11&pg_max_rows=10&pg_rows_fetched=10

Salu2.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE2:Por que a veces in es mejor que exists?

Publicado por Ricardo (84 intervenciones) el 06/10/2006 14:58:58
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar