Всем доброго дня! Есть проблема: добавили память на сервер SQL, теперь периодическая загрузка ЦП 99-100%. Раньше памяти не было и проблемы не было. Как выяснить с чем связана проблема?
Не редки случаи, когда 100% загрузка ЦП SQL сервером происходит при блокировках. Ранее у вас узкое место было в системе ввода-вывода, а теперь в обработке самих данных. Внимательно смотрите какие части БД на каких дисках располагаются, например, TEMPDB, по умолчанию находится на диске С, а в этой базе происходят сортировки и создания временных таблиц. Эту базу лучше класть на RAID, а еще лучше на SSD. Так же, не маловажным моментом является сбор статистики и дефрагментация индексов, это нужно делать каждый день.
какие части БД на каких дисках располагаются, например, TEMPDB
Евгений, добрый день!
Блокировки действительно частое явление, пока не думал что с ними делать.
Я правильно понимаю: что при добавлении оперативной памяти кардинально меняется "узкое место"?
TEMPDB как и лог базы црм реально лежат на c:\ а не на ssd как сама база! Надо всё вместе с логами на ssd закинуть?
Но будьте аккуратными, SSD имеет ограниченный ресурс, и если будет утеряна TEMPDB, то вы ничего не потеряете, а вот с файлами данных могут быть проблемы. Лучше саму базу на 10 RAID, а темповую базу на SSD.
А какой то монитор по процессу sqlservr существует, типа профайлера, но чтоб все действия сервера видны были? Чтобы наверняка определить в чем причина периодических (каждые 3-5 мин) уходов процессора в 100%
"Евгений Либин" написал:Есть монитор активности, там видно какие сессии
Евгений, спасибо! Именно благодаря этой замечательной функции (подсказал доблестный админ) в mssms и нашел косячную процедуру, которая в джобе часто запускалась. А еще понял (так же благодаря админу), что параллелизм зло, поэтому
Max Degree of Parallelism = 4 (а лучше вооюще 2 поставить)!!!