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

Откуда:
Сообщений: 397
Здравствуйте уважаемые знатоки! помогите плз понять почему 2 запроса отличаются по времени выполнения на порядок
1. 
select t.B , tr.id
from (select distinct Ref, B
         from t
        ) t
inner join tr on tr.Ref = t.Ref
2.
select distinct B, Ref 
into #t
from t

select t.B, tr.id
from #t t
inner join tr on tr.Ref = t.Ref


В таблице tr - 3000 записей (все уникальные)
В таблице t - 2070 записей (5 уникальные)
1-ый выполняется несколько минут
2-ой выполняется 10 сек
27 сен 17, 11:23    [20826182]     Ответить | Цитировать Сообщить модератору
 Re: Distinct в подзапросе  [new]
Sandist
Member

Откуда:
Сообщений: 397
Извиняюсь
Обе таблицы t и tr - вьюшки
27 сен 17, 11:25    [20826187]     Ответить | Цитировать Сообщить модератору
 Re: Distinct в подзапросе  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5112
Sandist
почему 2 запроса отличаются по времени выполнения на порядок
планы выполнения разные вестимо...
27 сен 17, 11:42    [20826276]     Ответить | Цитировать Сообщить модератору
 Re: Distinct в подзапросе  [new]
Sandist
Member

Откуда:
Сообщений: 397
Дедушка,

все верно, спасибо
использовал inner hash join и все стало на свои места (понимаю риск и знаю, что в случае, если запрос выдаст не 5 уникальных, а 5000 все изменится и подсказка может быть неправильной... это разовый запрос)
27 сен 17, 11:59    [20826344]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить