У меня есть таблица под названием sales
со следующими несколькими столбцами:SQL Server ускорить запрос с не
salesno (PK, char(25))
advanceno (char(15), not null)
Теперь я хочу, чтобы выбрать все строки, в которых salesno
не в advanceno
:
SELECT salesno
FROM sales
WHERE salesno NOT IN (SELECT advanceno FROM sales)
Запрос медленный, потому что таблица продаж содержит сотни тысяч строк.
Я сделал это, и это очень быстро:
SELECT salesno
FROM sales
WHERE salesno NOT IN ('000008360', '000008361', '000008362', '000008363', '000008364')
Как можно оптимизировать запрос?
присоединяется, как правило, быстрее, чем где пределы. – xQbert
Имеет ли в таблице продаж какие-либо индексы? –
Когда последний раз обновлялась статистика? Это было какое-то время? С того времени было добавлено значительное количество строк? – brian