Я всегда пишу сообщения в таблицу «EventLog». При обработке больших объемов данных я управляю данными в чанках и записываю обновления состояния в EventLog после каждого чанка.
Когда я хочу проверить ход длительного процесса, я просто запрашиваю таблицу EventLog.
Пример вывода:
-------------------
- Мое Большое Обновление -
-------------------
Начало работы: 2011-05-03 10:00:00
Записи для обработки: 1 000 000
Куски: 200
--- кусок 1 ---
Попытка обновить MyTable
Записи обновлены: 5000
Оставшихся записей: 995 000
Пропускная способность: 4210 записей в секунду
--- кусок 2--
Попытка обновить MyTable
Записи обновлены: 5000
Оставшихся записей: 990 000
Пропускная способность: 3555 записей в секунду
--- кусок 3--
и т.п.
У меня также есть столбцы в таблице EventLog, чтобы отслеживать, когда было написано сообщение, какой процесс написал сообщение и т. Д. Извините, что не включил эту информацию в мой пример.