Mam tabeli (EMAIL) adresów e-mail:Jak wykonać kwerendę "NOT IN" SQL szybciej?
EmailAddress
------------
[email protected]
[email protected]
[email protected]
[email protected]
i stół (czarna lista) na czarnej liście adresów e-mail:
EmailAddress
------------
[email protected]
[email protected]
i chcę wybrać te adresy e-mail, które są w Tabela EMAIL, ale NIE w tabeli BLACKLIST. Robię:
SELECT EmailAddress
FROM EMAIL
WHERE EmailAddress NOT IN
(
SELECT EmailAddress
FROM BLACKLIST
)
ale gdy liczy się wiersz uzyskać bardzo wysoką wydajność jest straszne.
Jak mogę to zrobić lepiej? (W razie potrzeby przyjmij ogólny kod SQL. Jeśli nie, przyjmij T-SQL.)
Dodaj indeks do kolumny BLACKLIST..EmailAddress, aby poprawić wydajność wybranego zapytania. – Tomek
@ Tomek - Powinienem był wskazać, problemy z wydajnością są zawarte w indeksie. – Howiecamp