По сути, у вас есть две системы: одна, которая собирает данные, и другая, которая отчитывается по этим данным.
Запуск отчетов для ваших часто обновляемых транзакционных таблиц, вероятно, приведет к блокировкам чтения, которые блокируют записи от завершениянастолько быстро, насколько это возможно, и, следовательно, возможно, ухудшит производительность.
Как правило, НАСТОЯТЕЛЬНО рекомендуется запускать периодическую задачу «сбора», которая собирает информацию из ваших (возможно, сильно нормализованных) транзакционных таблиц и помещает эти данные в денормализованные таблицы отчетности, образуя«хранилище данных».Затем вы указываете свой механизм / инструменты отчетности на денормализованное «хранилище данных», к которому можно обращаться, не затрагивая действующую транзакционную базу данных.
Эта задача сбора должна выполняться только так часто, как ваши отчеты должны быть "точными".Если вы можете сойти с рук один раз в день, отлично.Если вам нужно делать это один раз в час или больше, тогда продолжайте, но при этом следите за влиянием производительности на ваши задачи по написанию.
Помните, важна ли производительность вашей транзакционной системы (и обычно онаесть), избегайте отчетов против него любой ценой.