Хорошо, вот сценарий. У меня есть утилита, которая обрабатывает тонны записей и соответственно вводит информацию в базу данных.
Он работает с этими записями в многопоточных пакетах. Каждый такой пакет записывает в один и тот же файл журнала для создания трассировки рабочего процесса для каждой записи. Потенциально мы могли бы делать около миллиона записей в журнал в день.
Должен ли этот журнал быть внесен в базу данных, находящуюся на другом сервере? Соображения:
- Очевидным недостатком записи нескольких потоков в один и тот же файл журнала является то, что сообщения журнала перемешиваются друг с другом. В базе данных они могут быть сгруппированы по идентификатору партии.
- Производительность - что больше замедлит пакетную обработку? запись в локальный файл или отправка данных журнала в базу данных на другом сервере в той же сети. Теоретически файл журнала работает быстрее, но есть ли здесь подвох?
Существуют ли какие-либо оптимизации, которые можно выполнить при любом подходе?
Спасибо.