powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / почему не выбирается параллельный план
18 сообщений из 18, страница 1 из 1
почему не выбирается параллельный план
    #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
почему не выбирается параллельный план
    #39864588
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123,

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


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

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

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


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

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

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

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

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

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

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

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

ну как по мне постоянно EstimatedAvailableDegreeOfParallelism меньше разрешённого, это либо нагрузка либо вообще физически меньше :)
...
Рейтинг: 0 / 0
почему не выбирается параллельный план
    #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
почему не выбирается параллельный план
    #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
почему не выбирается параллельный план
    #39864761
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и да, получается, что дело не в несоответствии 4 и 6,
потому что план "3 + 1 + 1" имеет те же 4 в оценке и 6 реальных.
и он неизменно параллельный.

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

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

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


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