Скорость и производительность часто являются гораздо большей проблемой для отчетов. Ваш средний CRUD SQL-эффект часто затрагивает только 1 запись из приложения, поиск может занять больше времени, но обычно результаты ограничены заданным количеством строк.
В отчете может потребоваться объединить данные из миллионов записей и с 20-30 объединениями. Неправильно написанная программа может сильно замедлить работу системы, и, конечно, пользователи становятся крайне раздраженными, когда им приходится ждать 10 часов, чтобы получить тот отчет, который они просят. Это также может привести к блокировке. Тогда у вас есть проблема грязного чтения, которая может вызвать гораздо больше проблем в отчете. Существует причина, по которой данные часто хранятся для составления отчетов, и это, как правило, повышает производительность и позволяет пользователям не беспокоиться о выполнении транзакций.
Написание запросов для отчетов часто намного сложнее и сложнее для настройки производительности (из-за сложности), чем практически любой SQL-запрос к веб-приложению, которое не создает какую-либо форму отчета. Я видел запросы отчетов длиной более 500 строк.