максимальное время, которое отчет должен занять для создания отчета - PullRequest
0 голосов
/ 25 сентября 2008

Мне просто интересно узнать, сколько времени в минутах занимает служба отчетов, чтобы сгенерировать отчет, когда она возвращает 1 МБ данных. Может быть, используя представления и таблицы правильно индексировать. Отчеты SSRS и генерация на стороне сервера.

Ответы [ 5 ]

4 голосов
/ 25 сентября 2008

Время создания отчета состоит из двух компонентов: - Время сбора данных - время рендеринга

Итак, о 1 МБ данных, сколько записей (строк) мы говорим? Сколько страниц будет в отчете? Сколько элементов управления на странице? Использует ли отчет графики? Это факторы, которые будут определять время генерации.

Для большинства отчетов время сбора данных является наиболее значимым фактором. Ваш отчет никогда не будет работать быстрее, чем сбор необработанных данных. Поэтому, если вы используете SQL, отчет не может быть сгенерирован быстрее, чем время, необходимое для выполнения запроса. Я видел запросы, которые очень быстро возвращают более 1 МБ данных. Я также видел запросы, которые возвращают очень мало данных, которые выполняются в течение длительного времени.

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

Большинство систем отчетности позволяют вам встроить таймеры или ведение журналов, которые помогут вам настроить производительность отчета. Лучше всего встроить в отчет таймеры, которые сообщат вам, какой процент времени тратит отчет на получение данных, и какой процент тратится на рендеринг. Когда у вас будет эта информация, вы будете знать, куда направить свои энергии.

Если вы действительно пытаетесь оценить производительность инструмента создания отчетов, лучшим способом является создание отчета, который либо читает плоский файл, либо генерирует данные с помощью кода. Другими словами, устраните влияние базы данных и посмотрите, как быстро ваш инструмент отчетности может генерировать страницы.

Надеюсь, это поможет.

1 голос
/ 25 сентября 2008

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

1 голос
/ 25 сентября 2008

Как долго это приемлемо? Зависит от того, что он делает, сколько работает, и тому подобное. Все, что меньше 30 секунд, было бы хорошо, если бы оно запускалось один раз в день или два. Если он запускается раз в неделю или раз в месяц, это число может быть намного выше.

0 голосов
/ 29 мая 2011

Как уже говорили некоторые, на такой общий вопрос действительно нельзя ответить. Тем не менее, я написал Turbo-Charge Your Report Speed ​​- Общие правила и рекомендации (отказ от ответственности - я технический директор Windward Reports, конкурент SSRS). Я думаю, что это поможет вам найти то, что вы можете сделать, чтобы ускорить процесс.

И, учитывая все предостережения относительно специфики, на рабочей станции 3GHz мы обычно видим 7-30 страниц в секунду. Имейте в виду, что это цифры для Windward, а не SSRS.

0 голосов
/ 25 сентября 2008

Я обнаружил, что при использовании BIRT и других систем отчетности лучшие улучшения, как правило, достигаются за счет выгрузки большей части работы в базу данных на серверной части.

Другими словами, не отправляйте много данных по сети и не сортируйте и не группируйте их локально. База данных почти наверняка превзойдет вас с ее предложениями SQL orderby и groupby и оптимизирует индексы (среди прочего).

Таким образом, вы получаете более быстрое извлечение нужных данных и меньше сетевого трафика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...