Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
Чет я не пойму. У меняя есть тестовый запросик который хорошо распарралеливается. Запускаю его на 2000-м серваке при установленном на сервере свойстве использовать все имеющиеся процы для параллелизма. Запускаю запрос - все по чесноку, все 4 ядра загружены на 100%. Меняю на сервере свойство параллелизма на "использовать только один проц". Запускаю запрос опять - все процы заняты на ~25%. Это как это? Я ожидал что один проц будет занят на 100%.
11 сен 09, 11:29    [7646465]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
Glory
Member

Откуда:
Сообщений: 104760
Смена affinity mask вообще то требует перезапуска сервера
11 сен 09, 11:31    [7646474]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
Andret
Member

Откуда: Киев
Сообщений: 84
Кстати, может не по теме, если все четыре "процессора" являются ядрами одного, то вроде как на процессорах Intel есть встроенная балансировка нагрузки - что бы ядра не перегривались :-)
12 сен 09, 11:36    [7650811]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
Glory
Смена affinity mask вообще то требует перезапуска сервера


Речь шла не о affiniy mask а о "Max degree of parallelism Option":
Use the max degree of parallelism option to limit the number of processors (a maximum of 32) to use in parallel plan execution.
Изменение этого свойства не требует перзагрузки сервера. Кто нибудь может объяснить почему при установке этого свойства = 1 (что согласно документации должно предотвратить распараллеливание процессов) для большого запроса я вижу не один процессор(ядро) загруженный на 100% а 4-е процессора(ядра) зашруженные на 25%? Товарищ Andret выше упоминает некоторую технологию балансировки нагрузки между ядрами на процессорах Intel. Что-то я сомневаюсь. К тому же не могу ничего найти про это на вэбе.
15 сен 09, 09:37    [7658798]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
Параллелится или не параллелится запрос надо смотреть по его плану, а не загрузке процессора (ядра) каждое из которых может заниматься "своей часть работы".
15 сен 09, 09:43    [7658818]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
pkarklin
Параллелится или не параллелится запрос надо смотреть по его плану, а не загрузке процессора (ядра) каждое из которых может заниматься "своей часть работы".


И что интересного я там увижу? Ок, посмотрел планы. Выключаю параллелизм на сервере - нет параллелизма в плане запроса. Включаю параллелизм на сервере - параллелизм появляется в плане запроса. Как оно и должно быть. Что мне это дает?
15 сен 09, 10:07    [7658950]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
Glory
Member

Откуда:
Сообщений: 104760
dbnadm
pkarklin
Параллелится или не параллелится запрос надо смотреть по его плану, а не загрузке процессора (ядра) каждое из которых может заниматься "своей часть работы".


И что интересного я там увижу? Ок, посмотрел планы. Выключаю параллелизм на сервере - нет параллелизма в плане запроса. Включаю параллелизм на сервере - параллелизм появляется в плане запроса. Как оно и должно быть. Что мне это дает?

Если в плане нет параллелизма, то значит процессоры не заняты при выполнении этого плана
15 сен 09, 10:17    [7659014]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
dbnadm
И что интересного я там увижу? Ок, посмотрел планы. Выключаю параллелизм на сервере - нет параллелизма в плане запроса. Включаю параллелизм на сервере - параллелизм появляется в плане запроса. Как оно и должно быть. Что мне это дает?


если Вы не видите в плане операторов параллелизма, то значит данный запрос не параллелится.
15 сен 09, 10:24    [7659056]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
Glory
Если в плане нет параллелизма, то значит процессоры не заняты при выполнении этого плана

Если бы они не были заняты то не было бы вопроса. Вы можете проверить у себя? На 2000-м серваке?
15 сен 09, 10:24    [7659060]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
pkarklin
если Вы не видите в плане операторов параллелизма, то значит данный запрос не параллелится.

А почему тогда все 4 CPU подгружаются на ~25% а не один на 100%?
15 сен 09, 10:27    [7659072]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
Glory
Member

Откуда:
Сообщений: 104760
dbnadm
Glory
Если в плане нет параллелизма, то значит процессоры не заняты при выполнении этого плана

Если бы они не были заняты то не было бы вопроса. Вы можете проверить у себя? На 2000-м серваке?

Вы хотите сказать, что при запуске запроса вы видите в Профайлере действительный план без параллелизма, но сервер при этом использует все процессоры ? При этом никаких других запросов на сервере в это время не выполняется ?
15 сен 09, 10:28    [7659079]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
Glory
Вы хотите сказать, что при запуске запроса вы видите в Профайлере действительный план без параллелизма, но сервер при этом использует все процессоры ? При этом никаких других запросов на сервере в это время не выполняется ?

Именно это я и хочу сказать. Сервер - тестовый. Я на нем один.
15 сен 09, 10:30    [7659101]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
dbnadm,

А почему Вы считаете, что должен грузиться 1 и на 100%. Ведь не смотря на то, что сервер не парралелит выполнение плана запроса разные процессоры (ядра) могут выполнять разные задачи, связанные с обработкой запроса даже без IntraQuery паралелизма.
15 сен 09, 10:31    [7659112]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
И кстати, я проверил на 3-х разных серверах (все SQL 2000) - везде поведение одинаковое.
15 сен 09, 10:31    [7659113]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
pkarklin
dbnadm,

А почему Вы считаете, что должен грузиться 1 и на 100%. Ведь не смотря на то, что сервер не парралелит выполнение плана запроса разные процессоры (ядра) могут выполнять разные задачи, связанные с обработкой запроса даже без IntraQuery паралелизма.

Хмммм!
1) А зачем тогда вообще настройки для параллелизма если сервер все равно распараллеливает вне зависимости от них?
2) А почему тогда все 4 CPU не загружаются на 100% как при разрешенном параллелизме?
15 сен 09, 10:36    [7659143]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
Glory
Member

Откуда:
Сообщений: 104760
dbnadm
pkarklin
dbnadm,

А почему Вы считаете, что должен грузиться 1 и на 100%. Ведь не смотря на то, что сервер не парралелит выполнение плана запроса разные процессоры (ядра) могут выполнять разные задачи, связанные с обработкой запроса даже без IntraQuery паралелизма.

Хмммм!
1) А зачем тогда вообще настройки для параллелизма если сервер все равно распараллеливает вне зависимости от них?
2) А почему тогда все 4 CPU не загружаются на 100% как при разрешенном параллелизме?

Почему вы решили, что идет распараллеливание то ? Только на основании того, что на процессорах есть активность ?
15 сен 09, 10:42    [7659184]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74927
dbnadm
1) А зачем тогда вообще настройки для параллелизма если сервер все равно распараллеливает вне зависимости от них?
2) А почему тогда все 4 CPU не загружаются на 100% как при разрешенном параллелизме?


1. Сервер не расспараллеливает выполение одного запроса, если в плане нет параллелизма.
2. Значит нет в этом необходимости.
15 сен 09, 10:42    [7659192]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
Glory
Почему вы решили, что идет распараллеливание то ? Только на основании того, что на процессорах есть активность ?

Да. А что здесь не так? До начала запуска запроса там активности нет, после запуска она там пояаляется. Значит активность связана с выполнением запроса.
15 сен 09, 10:47    [7659220]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
Glory
Member

Откуда:
Сообщений: 104760
dbnadm
Glory
Почему вы решили, что идет распараллеливание то ? Только на основании того, что на процессорах есть активность ?

Да. А что здесь не так? До начала запуска запроса там активности нет, после запуска она там пояаляется. Значит активность связана с выполнением запроса.

Железная логика. Просто без вариантов.
А каким средством вы проверяете, что процессоры использует mssql ?
15 сен 09, 10:50    [7659265]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
проходящий.
Guest
dbnadm
Glory
Почему вы решили, что идет распараллеливание то ? Только на основании того, что на процессорах есть активность ?

Да. А что здесь не так? До начала запуска запроса там активности нет, после запуска она там пояаляется. Значит активность связана с выполнением запроса.
Логическая ошибка - "после" не тождественно "вследствие".
15 сен 09, 10:52    [7659274]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
Я еще могу понять аргумент что загрузка на всех остальных процах кроме одного может быть так или иначе быть связана с обработкой текущего запроса даже без параллелизма(что все равно странно) но скажите мне тогда - а почему тогда нет ни одного проца загруженного на 100% без параллелизма? Ни один их потоков никуда больше не торопится? Тогда как при разрешенном параллелизме загружены на 100% все 4!

Кстати, чтобы не быть голословным - я тестирую на "счастлитвых билетиках" включая и выключая параллелизм:

create table #t(i int)
insert #t select 0
insert #t select 1
insert #t select 2
insert #t select 3
insert #t select 4
insert #t select 5
insert #t select 6
insert #t select 7
insert #t select 8
insert #t select 9

select count(*) from #t t1, #t t2,#t t3,#t t4,#t t5,#t t6,#t t7,#t t8 ,#t t9,#t t10
where t1.i+t2.i+t3.i+t4.i+t5.i=t6.i+t7.i+t8.i+t9.i+t10.i

drop table #t


Может кто проверить у себя на 2000-м? Такая же картина?
15 сен 09, 10:55    [7659294]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
Glory
Железная логика. Просто без вариантов.
А каким средством вы проверяете, что процессоры использует mssql ?

Ну вообще-то это видно в том же Task Manager.
15 сен 09, 10:58    [7659318]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
Glory
Member

Откуда:
Сообщений: 104760
dbnadm
Glory
Железная логика. Просто без вариантов.
А каким средством вы проверяете, что процессоры использует mssql ?

Ну вообще-то это видно в том же Task Manager.

Видно что ? Как процесс sqlservr.exe использует все 4 процессора для выполнения запроса ? Расскажите, как вы это увидели
15 сен 09, 11:02    [7659352]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
dbnadm
Member

Откуда:
Сообщений: 101
проходящий.
Логическая ошибка - "после" не тождественно "вследствие".

Простите, но в таком виде мне кажется что это несерьезное замечание на уровне бесполезного теоретизирования. Если конечно вы не можете подтвердить что вы имеете в виду практически применимо к описываемой ситуации в виде последовательности причинно-следственных связей.
15 сен 09, 11:03    [7659366]     Ответить | Цитировать Сообщить модератору
 Re: MAXDOP =1  [new]
Glory
Member

Откуда:
Сообщений: 104760
dbnadm
проходящий.
Логическая ошибка - "после" не тождественно "вследствие".

Простите, но в таком виде мне кажется что это несерьезное замечание на уровне бесполезного теоретизирования. Если конечно вы не можете подтвердить что вы имеете в виду практически применимо к описываемой ситуации в виде последовательности причинно-следственных связей.

Вы в свою очередь пока тоже не предоставили никаких практических доказательств
15 сен 09, 11:05    [7659378]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить