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

Откуда: Кострома
Сообщений: 146
Добрый вечер!
Смотрел в интернете, но так понял, что это нельзя оптимизировать. Имеется запрос insert into @tablename select a,b,c from X group by a,b. Hash match графический планировщик ms sql 2014 показывает 60+%. X менять нельзя - там чтение с индексом. Как можно урезать стоимость group by?
Спасибо за ответы.
11 сен 18, 20:37    [21671468]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
invm
Member

Откуда: Москва
Сообщений: 9115
anc32
Hash match графический планировщик ms sql 2014 показывает 60+%
Это стоимость, а не процент от времени выполнения.
Что хотите оптимизировать и почему решили, что оптимизация необходима?
11 сен 18, 20:47    [21671482]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
aleks222
Member

Откуда:
Сообщений: 849
anc32
Добрый вечер!
Смотрел в интернете, но так понял, что это нельзя оптимизировать. Имеется запрос insert into @tablename select a,b,c from X group by a,b. Hash match графический планировщик ms sql 2014 показывает 60+%. X менять нельзя - там чтение с индексом. Как можно урезать стоимость group by?
Спасибо за ответы.


Что делает кот, когда коту делать нечего?

Правильно, именно это.
Если вы не врете, то select a,b,c from X group by a,b можно оформить индексированным представлением. И наступит щастье.
12 сен 18, 05:52    [21671667]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
anc32
insert into @tablename select a,b,c from X group by a,b

Попробуйте делать вставку во временную таблицу, а не в табличную переменную. В таком случае у вас больше шансов получить параллельный план
17 сен 18, 10:26    [21676429]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
AlanDenton
anc32
insert into @tablename select a,b,c from X group by a,b

Попробуйте делать вставку во временную таблицу, а не в табличную переменную. В таком случае у вас больше шансов получить параллельный план

если не ошибаюсь, то это только с 2016+. Ну и на переменной шанс 0%. И на куче тоже без шансов
17 сен 18, 10:32    [21676443]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
invm
Member

Откуда: Москва
Сообщений: 9115
AlanDenton
Попробуйте делать вставку во временную таблицу, а не в табличную переменную. В таком случае у вас больше шансов получить параллельный план
ТС жалуется на hash match. Данный фрагмент плана и так будет распараллеливавться при необходимости.
17 сен 18, 11:06    [21676499]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
invm
AlanDenton
Попробуйте делать вставку во временную таблицу, а не в табличную переменную. В таком случае у вас больше шансов получить параллельный план
ТС жалуется на hash match. Данный фрагмент плана и так будет распараллеливавться при необходимости.

ну кстати - нет. Табличная переменная не даёт генерировать параллельный план. По крайней мере у меня не получается.
17 сен 18, 11:19    [21676529]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
invm
Member

Откуда: Москва
Сообщений: 9115
TaPaK
Табличная переменная не даёт генерировать параллельный план.
Да, вы правы.
17 сен 18, 11:23    [21676542]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
TaPaK
Табличная переменная не даёт генерировать параллельный план

Ну да. Это одно из отличий табличной переменной от временных таблиц. Но если память не изменяет это еще как-то можно трейсфлагами обойди. Давно читал. А вот у ТС хз в чем проблема. то предложил наобум. План бы видеть)
17 сен 18, 13:25    [21676806]     Ответить | Цитировать Сообщить модератору
 Re: Оптимизация GROUP BY Hash match Aggregation  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
AlanDenton
TaPaK
Табличная переменная не даёт генерировать параллельный план

Ну да. Это одно из отличий табличной переменной от временных таблиц. Но если память не изменяет это еще как-то можно трейсфлагами обойди. Давно читал. А вот у ТС хз в чем проблема. то предложил наобум. План бы видеть)

Ну флагами прибивалась статистика, а вот параллельный план с последним ENABLE_PARALLEL_PLAN_PREFERENCE неть.
17 сен 18, 13:28    [21676813]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить