Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Подзапрос в WHERE или в JOIN ?  [new]
Николай Н.
Member

Откуда:
Сообщений: 80
Добрый день.
Есть ли какое-то преимущество, куда лучше писать подзапрос, выдающий несколько значений.
В блок WHERE и использовать IN или EXISTS
Или в INNE JOIN? А то и во FROM?

Я на своих примерах наблюдаю, что если писать в блоке WHERE, запрос выполняется на треть быстрее. Но объяснения этому найти не могу. В плане выполнения разве что кидается в глаза, когда подзапрос в JOIN или FROM вписать - идет Order by по результирующей выборке. Тоже интересно почему?

Очень странно, что по этому поводу нет вообще информации...
15 авг 14, 17:58    [16447845]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос в WHERE или в JOIN ?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Планы смотрите. Там ответ. Универсального ответа нет. Если запросы эквивалентны по планам, то разницы нет. Если планы разные, то значит суть запросов разная.
15 авг 14, 18:15    [16447887]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос в WHERE или в JOIN ?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
a_voronin
Если планы разные, то значит суть запросов разная.
Нонсенс.
16 авг 14, 02:28    [16449441]     Ответить | Цитировать Сообщить модератору
 Re: Подзапрос в WHERE или в JOIN ?  [new]
DarkMaster
Member

Откуда: Donetsk,Ukraine
Сообщений: 6537
Николай Н.,

В общем случае должно быть одинаково.
16 авг 14, 03:18    [16449475]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить