Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / почему не выбирается параллельный план / 18 сообщений из 18, страница 1 из 1
20.09.2019, 13:13
    #39864582
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
имеем такой апдэйт:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
	update transazioni 
	set status = 4, 
		statusfatturazione = 28,
		letta = 1, 
		ModoUso = tt.idmodouso, 
		note = left(isnull(note, '') + case 
						   when t.status < 3 
						   then ' -...-' 
						   else ''
   						end, 500)
 		
	from transazioni t
 		inner join #tt  tt 
			on tt.id = t.id
	where t.statusfatturazione <> 28


если не прописывать ему хинтом, что нужен параллельный план,
он его не выбирает добровольно.
вопрос, почему?
стОит параллельный план меньше, выполняется в 5-6 раз быстрее
(6 минут против 35).

вот оба плана(актуальные):

serial plan (default)
parallel (forced)

Код: sql
1.
2.
3.
4.
Microsoft SQL Server 2014 (SP3-CU3) (KB4491539) - 12.0.6259.0 (X64) 
	Apr  1 2019 22:19:54 
	Copyright (c) Microsoft Corporation
	Standard Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor)



Код: sql
1.
2.
sp_configure 'cost threshold for parallelism' -- 120
sp_configure 'max degree of parallelism' -- 6
...
Рейтинг: 0 / 0
20.09.2019, 13:30
    #39864588
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
Yasha123,

имхо пугается сортировки
...
Рейтинг: 0 / 0
20.09.2019, 13:36
    #39864593
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
Не может быть из-за этого
EstimatedAvailableDegreeOfParallelism="4"


что, если указать maxdop 4 в запросе?
...
Рейтинг: 0 / 0
20.09.2019, 13:37
    #39864596
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
но и эта подветка в параллельном тоже дешевле.
...
Рейтинг: 0 / 0
20.09.2019, 13:40
    #39864600
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
msLexчто, если указать maxdop 4 в запросе?
да, канает, спасибо.
так и сделаю, а то у меня неадмины выполняют.
а как это можно объяснить?
...
Рейтинг: 0 / 0
20.09.2019, 13:43
    #39864603
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
что интересно, он параллелит всякое дерьмо и с гораздо меньшей стоимостью,
и тоже на 4.
а тут уперся.
апдэйт этот периодический, и его план регулярно выносит,
но каждый раз строится новый как старый
...
Рейтинг: 0 / 0
20.09.2019, 13:49
    #39864606
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
Yasha123msLexчто, если указать maxdop 4 в запросе?
да, канает, спасибо.
так и сделаю, а то у меня неадмины выполняют.
а как это можно объяснить?

ну, насколько я понимаю,

требуемый (maxdop 6) выше оценочно-доступного (EstimatedAvailableDegreeOfParallelism = 4)
это, видимо, и отсекает параллельный план уже после построения.


это все просто догадки, и на вопрос "почему сразу не рассчитать параллельный план для maxdop = EstimatedAvailableDegreeOfParallelism?", точного ответа я не знаю.

но, возможно, это связанно с кешированием планов, при котором проблематично учесть текущее состояний сервера.
...
Рейтинг: 0 / 0
20.09.2019, 13:54
    #39864611
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
Кстати,

С какой-то версии SQLServer (в 2017 cu12 точно есть) в плане появилось вот такое свойство NonParallelPlanReason
...
Рейтинг: 0 / 0
20.09.2019, 14:15
    #39864628
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
https://dba.stackexchange.com/questions/134453/sql-not-engaging-parallelism-for-extremely-large-query - последний обзац 4-го пункта ответа Вайта.

Возможно это оно.
...
Рейтинг: 0 / 0
20.09.2019, 14:17
    #39864631
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
msLexтребуемый (maxdop 6) выше оценочно-доступного (EstimatedAvailableDegreeOfParallelism = 4)
это, видимо, и отсекает параллельный план уже после построения.

да, после смены серверного maxdop на 4 параллелит без пинков.
----
а не подскажете, во что выставить cost threshold for parallelism?
он же теперь совсем упараллелится...
и без того CXPACKET 75.56%, но это OLTP-сервер
...
Рейтинг: 0 / 0
20.09.2019, 14:31
    #39864650
msLex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
Yasha123а не подскажете, во что выставить cost threshold for parallelism?
он же теперь совсем упараллелится...
и без того CXPACKET 75.56%, но это OLTP-сервер

Brent Ozar советует не ниже 50, но у вас и так 120
поэкспериментируйте :)
...
Рейтинг: 0 / 0
20.09.2019, 15:18
    #39864683
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
кстати.
у меня была попытка разбить этот апдэйт на 3,
там 5 колонок меняются, но 3 из них есть в индексах, а 2 нет,
поэтому можно разделить 3 + 1 +1
ну и заодно на одиночные апдэйты проще повесить проверку,
не апдэйтится ли "вхолостую".
и вот там он выбрал параллельный план,
хотя все те же условия: он параллелит на 4, а доступно 6.
и это не разовый выбор, а многократный.

стоимость первого апдэйта с 3 полями
примерно как и у апдэйта с 5 полями.
почему там он упорно выбирал параллельный план?
3 + 1 + 1 parallel plan
...
Рейтинг: 0 / 0
20.09.2019, 15:29
    #39864694
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
Yasha123,

ну как сказали, снижать/менять паралелизм будет в том числе и от "текущей" нагрузки
...
Рейтинг: 0 / 0
20.09.2019, 15:59
    #39864732
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
да одинаковая нагрузка в течение дня,
и эти планы воспроизводятся с завидным постоянством.
если на сервере что-то тормозит, я сворачиваю экспериментальную деятельность,
но именно вчера-сегодня все спокойно, сервер отдыхает,
так что планы получены в одинаковых условиях
...
Рейтинг: 0 / 0
20.09.2019, 16:02
    #39864734
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
Yasha123,

ну как по мне постоянно EstimatedAvailableDegreeOfParallelism меньше разрешённого, это либо нагрузка либо вообще физически меньше :)
...
Рейтинг: 0 / 0
20.09.2019, 16:06
    #39864740
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
TaPaKYasha123,

ну как по мне постоянно EstimatedAvailableDegreeOfParallelism меньше разрешённого, это либо нагрузка либо вообще физически меньше :)
нет.
EstimatedAvailableDegreeOfParallelism * 2 = количество CPU доступных сиквелу.

и у нас
SQL Server detected 2 sockets with 4 cores per socket and 4 logical processors per socket,
8 total logical processors; using 8 logical processors based on SQL Server licensing.
...
Рейтинг: 0 / 0
20.09.2019, 16:12
    #39864745
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
Yasha123TaPaKYasha123,

ну как по мне постоянно EstimatedAvailableDegreeOfParallelism меньше разрешённого, это либо нагрузка либо вообще физически меньше :)
нет.
EstimatedAvailableDegreeOfParallelism * 2 = количество CPU доступных сиквелу.

и у нас
SQL Server detected 2 sockets with 4 cores per socket and 4 logical processors per socket,
8 total logical processors; using 8 logical processors based on SQL Server licensing.
ну у меня всё время EstimatedAvailableDegreeOfParallelism = MAXDOP
...
Рейтинг: 0 / 0
20.09.2019, 16:27
    #39864761
Yasha123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему не выбирается параллельный план
и да, получается, что дело не в несоответствии 4 и 6,
потому что план "3 + 1 + 1" имеет те же 4 в оценке и 6 реальных.
и он неизменно параллельный.

тем не менее, указание параллельности хинтом это лучше, чем флагом
(прав не надо), а эффект тот же.

вот оценочный план с maxdop 6,
хоть и 6, а не 4, все равно параллелит

parallel plan, maxdop 6
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / почему не выбирается параллельный план / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]