PDA

Ver la Versión Completa : Que Funcion es mejor que el not in


carlos gonzalez
04-06-2011, 00:37:21
Hola amigos alguien sabe si existe alguna funciones que tenga mejor rendimiento o performance que el not in en sql, que cuando ejecuto este tipo de consultas con tablas que tienes algunos miles de registros tarda las horas

por ejem.

SELECT * FROM TABLA1 WHERE CAMPO NOT IN (SELECT CAMPO FROM TABLA2)

si alguien sabe si existe algo mejor y lo quiere compartir con un servidor se los voy agradecer bastante.

Saludos...

su amigo charless

ContraVeneno
04-06-2011, 00:41:49
Select Campo
From tabla1 A
left outer join Tabla2 B on A.Campo = B.Campo
where B.Campo is null

saldanaluis
07-06-2011, 04:30:41
Estimado amigo Lagunero, (paisano)

¿Estás seguro que ese join que pones es mejor que el NOT IN ...?
¿Es más eficiente? ¿Utiliza menos recursos?
¿Cual es la razón por la cual mencionas que es mejor?

Personalmente creo que para los seres comunes y corrientes como un servidor, el NOT IN es más entendible que lo que propones, pero en aplicaciones muy grandes (de mucha información) lo que se busca es la eficiencia y no lo 'user friendly'.

Saludos...

ContraVeneno
07-06-2011, 17:23:36
pues sería cuestión de probar.

La teoría dice que la primer opción ejecuta dos consultas con muchos registros y luego hace la comparación registro por registro para eliminar los que no correspondan.

La opción que yo uso hace una sola consulta uniendo las dos tablas y filtrando los que correspondan al enlace. Al final (con el where) muestra solo los que no coinciden.

Pero como te digo, es cuestión de probar cuál de las dos tiene mejor rendimiento.

Saludos y te encargo un cabrito pa cuando vaya, que ya tiene mucho que no me doy la vuelta para allá. :D