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

Откуда:
Сообщений: 7
Добрый день.

У меня MS SQL 2016 работает в VM под Hyper-V.

Процессор на физическом сервере Xeon E5-2620v4 8 ядер 16 потоков.

Я выделил 10 vCPU под эту виртуалку и фиксированный обьём памяти 20480Гб из них от 8192 до 16384 под SQL и остальное под агент сервера 1С 8.3 х64.

Ночью выполняется Maintenance Plan, который выглядит следующим образом:

https://yadi.sk/i/hzNLaFUL3ZrV2Z

В заданиях Check Database Integrity и Rebuild Index указал maxdop = 4. Замерял скорость выполнения заданий с шагом в 2 от 0 до 1.
Разница была в пределах 10 минут относительно 2х часов выполнения на значении = 4.

Update Statistics с параметром column statistics only.

Собственно проблема в том, что по системе мониторинга в момент перестроения индексов полностью загружен только 1 CPU и при этом почему-то 8й: https://yadi.sk/i/180qwHOr3ZrVHj

Проверил, что SQL использует все "ядра":

SELECT scheduler_id, cpu_id, status, is_online FROM sys.dm_os_schedulers 
GO


Результат https://yadi.sk/i/WTOFHgTH3ZrVRK

Подскажите, почему так происходит и можно ли это как-то исправить?

Заранее благодарен за ответты.
3 авг 18, 09:32    [21627111]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
h1g04
Member

Откуда:
Сообщений: 7
Забыл указать, редакция Enterprise
3 авг 18, 09:35    [21627128]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
h1g04
Member

Откуда:
Сообщений: 7
а всё разобрался )
3 авг 18, 12:49    [21628038]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
uaggster
Member

Откуда:
Сообщений: 827
h1g04, Ну уж колись давай, в чем разобрался :-)
3 авг 18, 12:56    [21628084]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
aleksrov
Member

Откуда:
Сообщений: 948
uaggster,

Наверно потому что в стандарте это всегда однопоточная операция, т.е. ребилд.
3 авг 18, 15:25    [21628646]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
TaPaK
Member

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

Наверно потому что в стандарте это всегда однопоточная операция, т.е. ребилд.

скажу даже больше, MS в принципе не рекомендует делать ребилд в многопоточном режиме
3 авг 18, 15:26    [21628651]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
aleksrov
Member

Откуда:
Сообщений: 948
TaPaK,

Если честно впервые слышу, а чем обосновано?
В 2016 Sp1 и 2017 кстати и в стандарте может в несколько потоков.
3 авг 18, 15:43    [21628717]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
TaPaK
Member

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

Если честно впервые слышу, а чем обосновано?
В 2016 Sp1 и 2017 кстати и в стандарте может в несколько потоков.

Если коротко, при собиарании потоков даёт фрагментацию. В принципе там % не такой уже и критический, но кому как :)
3 авг 18, 16:10    [21628789]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
aleksrov
Member

Откуда:
Сообщений: 948
TaPaK,

Я так и думал :) Я знаю что это может помочь в кластерных, имеется ввиду rowgroup elimination, для обычных такого не читал, видимо плюсы перевешивают минусы, не зря в стандарте этого не было.
3 авг 18, 16:24    [21628840]     Ответить | Цитировать Сообщить модератору
 Re: Кол-во используемых процессоров в SQL  [new]
aleksrov
Member

Откуда:
Сообщений: 948
не кластерных, а колоночных имелось ввиду.
3 авг 18, 16:24    [21628842]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить