Чем отличается написание SQL-запросов для отчетов? - PullRequest
1 голос
/ 18 марта 2011

Чем написание SQL-запросов для отчетов, которые часто выполняются раз в неделю, раз в месяц или в нечастом количестве, отличается от написания запросов для веб-приложений (или приложений), которые выполняются много раз в день?Если запрос выполняется только один раз в месяц, скорость и производительность не являются большой проблемой, правильно?Как насчет более частого использования аспектов SQL (временных таблиц, CTE и т. Д.)?

Ответы [ 2 ]

6 голосов
/ 18 марта 2011

Они не отличаются и применяются те же соображения, что и для любого другого запроса.

Вопрос о том, важны ли скорость и производительность, зависит не от вашего решения, а от пользователей отчета.

Что произойдет, если ваш запрос на ежемесячный отчет займет 3 часа, заблокировав несколько таблиц в процессе и остановив другие приложения из-за отсутствия доступа к ним?

2 голосов
/ 18 марта 2011

Скорость и производительность часто являются гораздо большей проблемой для отчетов. Ваш средний CRUD SQL-эффект часто затрагивает только 1 запись из приложения, поиск может занять больше времени, но обычно результаты ограничены заданным количеством строк.

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

Написание запросов для отчетов часто намного сложнее и сложнее для настройки производительности (из-за сложности), чем практически любой SQL-запрос к веб-приложению, которое не создает какую-либо форму отчета. Я видел запросы отчетов длиной более 500 строк.

...