Чтобы отслеживать, сколько пользователей в настоящее время на вашем сайте, вы можете использовать счетчики производительности. То, что вы описываете, звучит как полноценная регистрация каждого попадания на страницу.
Допустим, вы действительно подключили 50 тыс. Пользователей одновременно.
Пока у вас нет разногласий между обновлениями (попытка заблокировать одну и ту же запись), база данных может отслеживать очень большое количество вставок и обновлений. Вы должны сделать некоторое планирование мощности, чтобы гарантировать, что груз может быть перенесен. 50 тыс. Пользователей, посещающих страницу каждую минуту, дадут вам 50 тыс. Вставок и 50 тыс. Обновлений в минуту, примерно 850 вставок и 850 обновлений в секунду, которые необходимо зафиксировать (очистить журнал). Поддерживает ли подсистема ввода-вывода вашей БД такую нагрузку при записи, помимо ответа на все запросы (чтения)?
Кроме того, 50 000 пользователей, выполняющих 1 посещение страницы в минуту, добавляют до 72 миллионов обращений в день, 72 миллиона. регистрируя вставки, с такой скоростью вам нужно тщательно спланировать размер базы данных и подумать, какой анализ вы будете выполнять на собранных данных, так как запрос 2 миллиардов строк (данных за один месяц) не даст вам быстрых результатов. (на самом деле ... довольно медленно).
Выполнение этого асинхронно может дать вам некоторое облегчение при очень коротких шипах, но не в долгосрочной перспективе. Если ваша система БД не может справиться с нагрузкой, то выполнение асинхронных вызовов просто создаст очередь невыполненных работ в процессе приложения (в пуле приложений ASP), и это будет расти до нехватки памяти, и в этот момент все бдительные IIS будут «перезагружать» пул приложений, что приводит к потере всех ожидающих асинхронных обновлений.