Обратил внимание- на MS SQL Server периодически возникает ситуация ненормальной но непродолжительной нагрузки.
Анализ показал, что причиной является вызов JOB-ов. Они вызываются по времени, создают синхронную нагрузку. Можно ли их как-то развести без серьезных изменений логики и шедулера?
Можно- очень просто. В один из самых напряженных скриптов был добавлен такой фрагмент:
DECLARE @wt VARCHAR(12)
SELECT @wt=’00:00:’+CONVERT(VARCHAR(2),CONVERT(NUMERIC(2,0),RAND()*59))
WAITFOR DELAY @wt
Перед выполнением скрипт ждет несколько секунд, до минуты. Период ожидания выбирается случайно и НЕ совпадает у различных JOB-ов.
Пиковая нагрузка размазывается на несколько секунд.