Разница в производительности, если я сначала СОЮЗУ, а затем поместите ГДЕ в объединенный набор результатов? - PullRequest
1 голос
/ 12 мая 2010

В Microsoft SQL, есть ли разница в производительности между:

SELECT columns FROM table1 WHERE cond
UNION
SELECT columns FROM table2 WHERE cond

и это:

SELECT columns FROM
(
SELECT columns FROM table1
UNION
SELECT columns FROM table2
) WHERE cond

1 Ответ

4 голосов
/ 12 мая 2010

Первый вариант предпочтительнее, поскольку, если в каком-либо столбце, указанном в предложении WHERE, существуют индексы, которые могут быть включены в вызовы функций, можно использовать индекс (ы).

Последняя является производной таблицей, поэтому об использовании индекса не может быть и речи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...