Comments 2
UFO just landed and posted this here
В статье вопросы производительности отдельного оговорены.
Общий «дисклеймер»:
Касательно параметра
Собственно крах надежд, возлагаемых на MAXDOP — в том числе и сподвиг меня на написание нужной функции самому.
И хотя основная задача и не была связана с индексами, но функция получилась универсальная и позволяет параллельно выполнять любые атомарные (не связанные друг с другом) запросы.
В том числе использую её и для перестроения индексов, как показано в примере, с учётом указанных выше оговорок по производительности.
Общий «дисклеймер»:
При этом далее предполагается, что у нас есть короткое регламентное окно, когда мы можем использовать всю (или большую часть) производительности сервера баз данных для своих целей, без учёта потребностей пользователей. Если у вас сервер SQL значительно нагружен в режиме 24/7 — вам нужно другое решение.и конкретно по параллельному перестроению индексов:
Внимание! Многопоточное перестроение индексов может загрузить ваш сервер баз данных на 100% и вызвать другие неожиданные последствия, я предупредил! Всегда тестируйте незнакомый код в тестовой среде.
Касательно параметра
MAXDOP
для ALTER INDEX
— то:- главное: он работает только в редакции Enterprise, в Standard и ниже — молча игнорируется;
- он в теории распараллеливает процесс в рамках одного индекса, что при наличии избыточной процессорной «мощи» может быть недостаточно быстро;
- ну и когда я тестировал влияние этого параметра на тестовой копии рабочей базы в Developer Edition — разница была в рамках статистической погрешности.
Собственно крах надежд, возлагаемых на MAXDOP — в том числе и сподвиг меня на написание нужной функции самому.
И хотя основная задача и не была связана с индексами, но функция получилась универсальная и позволяет параллельно выполнять любые атомарные (не связанные друг с другом) запросы.
В том числе использую её и для перестроения индексов, как показано в примере, с учётом указанных выше оговорок по производительности.
0
Sign up to leave a comment.
SQL Server & Powershell: быстро, просто, параллельно. И больше не нужно выбирать 2 из 3-х