Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 можно ли заставить не использовать nested loops  [new]
dwh maker
Guest
Привет, есть стар схема fact - columnstore, dimensions - heaps.

Запросы adhoc 1 - 5 джойнов + фильтрация по дименшнам.
В планах видно недооценку количества строк ближе к вершине плана выполнения, как следствие оптимизатор выбирает nested loops :(.
Статистика свежая на каждую колонку таблиц.

Если ставлю option(hash join) то все летает. Проблема в том что запросы генерятся BI тулзой.

Можно ли зафорсить SQL Server использовать hash joins для такой-то базы не переписывая запрос и не хитнтуя его, м. б. какой трейсфлаг есть или как-то заплангайдить?
27 июл 17, 14:34    [20679865]     Ответить | Цитировать Сообщить модератору
 Re: можно ли заставить не использовать nested loops  [new]
aleks222
Guest
Можно, канешно.
Обнови статистику и помедитируй над индексами.
27 июл 17, 14:36    [20679880]     Ответить | Цитировать Сообщить модератору
 Re: можно ли заставить не использовать nested loops  [new]
komrad
Member

Откуда:
Сообщений: 5244
dwh maker

Можно ли зафорсить SQL Server использовать hash joins для такой-то базы не переписывая запрос и не хитнтуя его, м. б. какой трейсфлаг есть или как-то заплангайдить?


https://www.mssqltips.com/sqlservertip/1630/how-to-use-a-sql-server-plan-guide-to-tune-queries/
27 июл 17, 14:44    [20679900]     Ответить | Цитировать Сообщить модератору
 Re: можно ли заставить не использовать nested loops  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
dwh maker,

вообщем средства стандартные - статисктика, query store, или планы прибивать.

может кто из практиво подскажет: если поднять min&max memory granted до неприличного, будет ли лезть в самый hash...
27 июл 17, 14:47    [20679917]     Ответить | Цитировать Сообщить модератору
 Re: можно ли заставить не использовать nested loops  [new]
dwh maker
Guest
komrad,

я это читал, но что-то не могу найти как заставить приписывать хинт к каждому запросу (не для каждого запроса создавать батч)
тулза генерит джойны дименшнов с таблицей фактов, в where предикаты по полям дименшнов, обычно сравнение с константами.
27 июл 17, 15:24    [20680097]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить