5 - Нормализуйте таблицы журналирования SQL.Я уверен, что есть много информации, которую вы дублируете (например, «информация о сеансе»).Для каждого нового сеанса создайте новую запись в своей таблице «Sessions», и ваша таблица «SessionDetail» записывает конкретную информацию о просмотренных страницах и т. Д.
Вы действительно не должны получать взаимоблокировки в этом.*
Ваш вариант № 2 также должен работать нормально, если вы правильно его спроектируете, но это будет зависеть от того, как вы используете данные.Если вы НИКОГДА не обновляете свои исторические (т. Е. До сегодняшнего дня) журналы, я бы создал для них отдельную БД, и ваши активные журнальные таблицы с интенсивной записью в отдельной БД на отдельном диске.Другой вариант, связанный с этим, заключается в создании нескольких журналирующих БД для распределения дискового ввода-вывода.Если у вас есть несколько платформ / серверов, которые вы отслеживаете, вы можете разместить их все в разных БД и использовать представление, чтобы увидеть их все сразу.