Tengo una tabla (correo electrónico) de direcciones de correo electrónico:¿Cómo puedo realizar una consulta SQL 'NO EN' más rápido?
EmailAddress
------------
[email protected]
[email protected]
[email protected]
[email protected]
y una mesa (lista negra) de direcciones de correo electrónico de la lista negra:
EmailAddress
------------
[email protected]
[email protected]
y quiero seleccionar aquellas direcciones de correo electrónico que se encuentran en el Tabla EMAIL pero NO en la tabla BLACKLIST. Estoy haciendo:
SELECT EmailAddress
FROM EMAIL
WHERE EmailAddress NOT IN
(
SELECT EmailAddress
FROM BLACKLIST
)
pero cuando el recuento de filas es muy alto, el rendimiento es terrible.
¿Cómo puedo hacer esto mejor? (Suponga SQL genérica si es posible. Si no es así, asumir T-SQL.)
Agregue índice en la columna BLACKLIST..EmailAddress para mejorar el rendimiento de la consulta finalmente elegida. – Tomek
@Tomek - Debería haber indicado, los problemas de rendimiento están con el índice incluido. – Howiecamp