Время создания отчета состоит из двух компонентов:
- Время сбора данных
- время рендеринга
Итак, о 1 МБ данных, сколько записей (строк) мы говорим? Сколько страниц будет в отчете? Сколько элементов управления на странице? Использует ли отчет графики? Это факторы, которые будут определять время генерации.
Для большинства отчетов время сбора данных является наиболее значимым фактором. Ваш отчет никогда не будет работать быстрее, чем сбор необработанных данных. Поэтому, если вы используете SQL, отчет не может быть сгенерирован быстрее, чем время, необходимое для выполнения запроса. Я видел запросы, которые очень быстро возвращают более 1 МБ данных. Я также видел запросы, которые возвращают очень мало данных, которые выполняются в течение длительного времени.
На стороне рендеринга есть несколько вещей, которые могут привести к замедлению работы отчета. Первый заключается в агрегировании отчетов. Если отчет должен получить все записи до начала рендеринга, его производительность снизится. В частности, в зависимости от инструмента отчетности. С большими наборами данных (более 10 000 записей) вы можете значительно улучшить рендеринг, выполнив агрегирование в источнике (БД). Другой - это построение диаграмм, которое обычно связано с большими издержками рендеринга и агрегацией.
Большинство систем отчетности позволяют вам встроить таймеры или ведение журналов, которые помогут вам настроить производительность отчета. Лучше всего встроить в отчет таймеры, которые сообщат вам, какой процент времени тратит отчет на получение данных, и какой процент тратится на рендеринг. Когда у вас будет эта информация, вы будете знать, куда направить свои энергии.
Если вы действительно пытаетесь оценить производительность инструмента создания отчетов, лучшим способом является создание отчета, который либо читает плоский файл, либо генерирует данные с помощью кода. Другими словами, устраните влияние базы данных и посмотрите, как быстро ваш инструмент отчетности может генерировать страницы.
Надеюсь, это поможет.