Максимальные размеры отчетов и моментальных снимков

Администраторы, которые управляют развертыванием служб Службы Reporting Services, могут использовать этот раздел, чтобы получить основные сведения об ограничениях максимального размера отчета при публикации на сервере отчетов, о подготовке к просмотру во время выполнения и сохранении в файловой системе. В этом разделе содержатся практические рекомендации по определению размера базы данных сервера отчетов, а также описывается влияние размера моментальных снимков на производительность сервера.

Максимальный размер опубликованных отчетов и моделей

Размер отчета и модели определяется размером файлов определения отчета (RDL) и моделей отчетов (SMDL), которые публикуются на сервере отчетов. Сервер отчетов не ограничивает размер отчета или модели, которые публикуются. Однако Microsoft ASP.NET налагает ограничения на максимальный размер элементов, отправляемых на сервер. По умолчанию это ограничение — 4 мегабайта (МБ). Если передается или публикуется на сервере отчетов файл, превышающий этот предел, будет получено HTTP-исключение. В этом случае можно изменить значение по умолчанию, увеличив значение элемента maxRequestLength в файле Machine.config.

Хотя модель отчета может иметь очень большой размер, определения отчетов редко превышают 4 МБ. Их обычный размер определяется килобайтами (КБ). Однако если включаются встроенные изображения, кодирование этих изображений может привести к большому размеру определений отчетов, превышающему значение по умолчанию в 4 МБ.

ASP.NET налагает максимальное ограничение на отправляемые файлы, чтобы уменьшить угрозу атак типа «отказ в обслуживании» на сервер. Увеличение значения верхнего ограничения снимает часть защиты, которую это ограничение обеспечивает. Увеличивайте значение, только если уверены, что выгода перевешивает любой дополнительный риск безопасности.

Размер отчета в памяти

При запуске какого-либо отчета максимальный размер равен величине данных, которые возвращаются в отчет, плюс размер выходного потока. Службы Службы Reporting Services не накладывают ограничений на максимальный размер отчета, готового для просмотра. Верхнюю границу размера определяет объем памяти в системе (по умолчанию сервер отчетов использует всю доступную выделенную память при подготовке отчета), однако для установки пороговых значений для памяти и политики управления памятью можно задать параметры конфигурации. Дополнительные сведения см. в разделе Настройка доступной памяти для приложений служб Reporting Services.

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

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

  • Для форматов PDF, TIFF, XML и CSV перед отображением отчета весь запрос обрабатывается в памяти.

Размер отчета, готового для просмотра, можно посмотреть в журнале выполнения отчетов. Дополнительные сведения см. в разделе Журнал выполнения сервера отчетов и представление ExecutionLog3.

Чтобы рассчитать занимаемый на диске размер отчета, готового для просмотра, можно выполнить экспорт, а затем сохранить отчет в файловую систему (сохраненный файл содержит данные и сведения о форматировании отчета).

Единственное неизменное ограничение на размер отчета накладывается при подготовке отчета в формате Excel. Листы не могут иметь более 65536 строк и 256 столбцов. Другие форматы представления не имеют этих ограничений, поэтому размер отчета ограничен количеством ресурсов сервера. Дополнительные сведения об ограничениях файлов Excel см. в разделе Экспорт в Microsoft Excel (построитель отчетов версии 3.0 и службы SSRS).

ПримечаниеПримечание

Обработка и подготовка отчета к просмотру происходят в памяти. При работе с большими отчетами или с большим количеством пользователей нужно убедиться, что ресурсы сервера отчетов развернуты на уровне, который удовлетворяет пользователей. Дополнительные сведения о средствах и рекомендациях см. в следующих публикациях MSDN: Планирование масштабируемости и производительности служб Reporting Services (на английском языке) и Тестирование загрузки сервера отчетов служб Reporting Services SQL Server 2005 в среде Visual Studio 2005 (на английском языке).

Определение размера хранилища моментальных снимков

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

По умолчанию базы данных reportserver и reportservertempdb настраиваются на автоматическое расширение. Хотя размер базы данных может увеличиваться автоматически, но автоматически уменьшаться он не может. Если база данных reportserver имеет избыточный размер из-за удаления моментального снимка, то необходимо уменьшить ее размер вручную, что приведет к освобождению места на диске. Аналогичным образом, если база данных reportservertempdb увеличилась, чтобы вместить необыкновенно большой объем интерактивных отчетов, выделенное место на диске останется на этом уровне до тех пор, пока не будет уменьшено вручную.

Для определения размера баз данных сервера отчетов можно выполнить следующие команды Transact-SQL. Периодический подсчет общего размера базы данных может со временем помочь рационально выделять место на диске для базы данных сервера отчетов. Следующие инструкции измеряют объем используемого в текущее время пространства (при применении инструкций предполагается, что используются имена баз данных по умолчанию):

USE ReportServer
EXEC sp_spaceused

Размер моментальных снимков и производительность сервера отчетов

Размер моментального снимка влияет на производительность сервера во время обработки отчета и подготовки его к просмотру. На производительность сервера в наибольшей степени влияют операции подготовки отчетов к просмотру, поэтому, если моментальный снимок имеет большой размер, возможна некоторая задержка при запросе отчета пользователями. В зависимости от числа пользователей задержка может быть заметной уже при размере моментального снимка 100 МБ.

Чтобы уменьшить задержки выполнения из-за моментального снимка большого размера, можно сделать следующее:

  • развернуть сервер отчетов и SQL Server Database Engine на разных компьютерах;

  • увеличить объем системной памяти.

  • Ознакомьтесь с описанием настройки сервера отчетов для его оптимальной работы в масштабах предприятия в документе «Планирование масштабируемости и производительности служб Reporting Services», расположенном на веб-сайте MSDN.

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