Сообщение Re: Уменьшить nested loops MS SQL 2014 от 08.09.2016 6:24
Изменено 08.09.2016 6:24 gka
Здравствуйте, Sаныч, Вы писали:
S>Есть запрос вида:
S>
S>Здесь двада вложенных select, которые фильтруют один и тот же диапазон из ссылаемой таблицы. Можно ли сделать так, чтобы был только один скан второй таблицы?
select Distinct p.*, count(*) over (partition by c.Product), max(Date) over (partition by c.Product) from Product p inner join Client c on c.Product = p.Id
S>Есть запрос вида:
S>
S>select *,
S>(select * from Client c on c.Product = p.Id) as ClientCount,
S>(select max(Date) from Client c on c.Product = p.Id) as LastClient,
S>from Product p
S>
S>Здесь двада вложенных select, которые фильтруют один и тот же диапазон из ссылаемой таблицы. Можно ли сделать так, чтобы был только один скан второй таблицы?
select Distinct p.*, count(*) over (partition by c.Product), max(Date) over (partition by c.Product) from Product p inner join Client c on c.Product = p.Id
Re: Уменьшить nested loops MS SQL 2014
Здравствуйте, Sаныч, Вы писали:
S>Есть запрос вида:
S>
S>Здесь двада вложенных select, которые фильтруют один и тот же диапазон из ссылаемой таблицы. Можно ли сделать так, чтобы был только один скан второй таблицы?
S>Есть запрос вида:
S>
S>select *,
S>(select * from Client c on c.Product = p.Id) as ClientCount,
S>(select max(Date) from Client c on c.Product = p.Id) as LastClient,
S>from Product p
S>
S>Здесь двада вложенных select, которые фильтруют один и тот же диапазон из ссылаемой таблицы. Можно ли сделать так, чтобы был только один скан второй таблицы?
select Distinct p.*, count(*) over (partition by c.Product), max(Date) over (partition by c.Product) from Product p inner join Client c on c.Product = p.Id