[mssql] Распределение нагрузки
От: barboss  
Дата: 30.05.22 13:31
Оценка:
Вопрос скорее к админам.
Нужно перелить данные из одной таблицы в другую. Приоритет низкий. Время выполнения ограничено несколькими днями.
Хочу делать в цикле пакетно, чтобы размер пакета и задержка между итерациями зависили от текущей нагрузки

Грубо говоря:
while 1=1
begin
  set @workload = ? --0-100, процент нагрузки на cpu/disk io/еще что-то  

  delete top(5000 * 1.0 / @workload) from t
  output deleted.* into t_archive
  
  if @@rowcount = 0 break

  declare @time varchar(100) = right(convert(varchar(100), dateadd(second, @workload ,getdate()), 121), 12)
  waitfor time @time

end


Как бы пограмотней посчитать этот процент нагрузки ? Может еще что предложите...
Отредактировано 30.05.2022 13:36 barboss . Предыдущая версия .
mssql
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.