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.
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


0