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

Откуда:
Сообщений: 442
Можно-ли как-то оптимизатору запроса запретить преобразовывать подзапрос в merge join?

Суть пробемы такова,
есть запрос вида
select (... where id=v.id) info
from #v v

Оптимизатор запроса раскрывает вложенный запрос и в самом конце выполнения делает фильтр или hash match к таблице #v.
Получается что около лимона записей считвается а потом отфильтровывается до 1-2, т.к. в табилце #v всего 2 записи.

передел подзапрос на функцию, и все работает нормально. Но душа не спокойна)

Возможно-ли сделать так, чтоб подзапрос выполнялся столько раз, сколько строк в таблице #v, как в случае если этот подзапрос оформлен как функция?
5 ноя 11, 18:11    [11553301]     Ответить | Цитировать Сообщить модератору
 Re: Можно-ли как-то оптимизатору запроса запретить преобразовывать подзапрос в merge join?  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
BERSERC,

подзапрос всегда раскрывается оптимизатором.
Индекс по #v.id есть?
5 ноя 11, 18:22    [11553322]     Ответить | Цитировать Сообщить модератору
 Re: Можно-ли как-то оптимизатору запроса запретить преобразовывать подзапрос в merge join?  [new]
опционно
Guest
BERSERC,

OPTION(LOOP JOIN)
5 ноя 11, 19:10    [11553394]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить