Перейти к содержанию

Советы по оптимизации отчетов: различия между версиями

Материал из Химсофт Вики
Строка 38: Строка 38:
{|class="wikitable" style="margin:auto; background-color: #fff;"  
{|class="wikitable" style="margin:auto; background-color: #fff;"  
|-
|-
!
!Фактор
!
!Влияние
!
!Рекомендация
|-
|-
|
|Изображения
|
|Обнаружение дубликатов замедляет обработку (даже при экономии памяти)
|
|Минимизируйте повторяющиеся изображения на страницах
|-
|-
|
|Колонтитулы
|
|Заголовки с итогами/подсчетом страниц задерживают рендеринг
|
|По возможности размещайте итоги в нижних колонтитулах
|-
|-
|CacheToDisk
|Значительно увеличивает время загрузки
|
|
|
*Используйте только для очень больших отчетов
|
Установите в False для отчетов <100 страниц (может увеличить использование памяти)
|-
|-
|
|SQL-запросы со звездой
|
|«SELECT *…» возвращает ненужные данные
|
|Используйте конкретные имена столбцов; консультируйтесь с администратором БД по оптимизации запросов
|-
|-
|
|SQL-запросы сложной формы
|
|Замедляется работа с БД
|
|Консультируйтесь с администратором БД
|-
|-
|}
|}

Версия от 02:45, 20 февраля 2026

Большие и\или сложные отчеты (100+ страниц или более 10минут генерации) требуют оптимизации состава и настроек перед использованием на практике, иначе, отчет не сделается за приемлемое время. Для этого требуется комплексно оценить имеющиеся ресурсы и внести оптимизирующие правки.

Оптимизация памяти

Компонент Проблема Решение
Изображения Большое потребление памяти при экспорте в RTF/TIFF, особенно при повторении Ограничьте большие изображения в форматах RTF/TIFF

Примечание: PDF/Excel/HTML хранят дубликаты один раз (лучше для памяти, медленнее обработка)

Подотчеты Каждый экземпляр потребляет память (умножается в повторяющихся секциях) Минимизируйте подотчеты в секциях Detail

Лучшая практика: Создавайте экземпляры в событии ReportStart (один раз) вместо события Format (для каждого экземпляра)

CacheToDisk Большие отчеты потребляют чрезмерную память
  • Установите Document.CacheToDisk = True

Важно: Используйте свойство CacheToDiskLocation для физического пути (избегайте ограничений размера IsolatedStorage)

  • Параметр влияет только на экспорт в PDF
Колонтитулы Подсчет страниц/итоги в заголовках задерживают рендеринг и снижают эффективность CacheToDisk
  • Избегайте итогов в секциях заголовков
  • Групповые итоги в заголовках групп = минимальное влияние
  • Итоги отчета в заголовке отчета = значительное влияние

Оптимизация скорости

Фактор Влияние Рекомендация
Изображения Обнаружение дубликатов замедляет обработку (даже при экономии памяти) Минимизируйте повторяющиеся изображения на страницах
Колонтитулы Заголовки с итогами/подсчетом страниц задерживают рендеринг По возможности размещайте итоги в нижних колонтитулах
CacheToDisk Значительно увеличивает время загрузки
  • Используйте только для очень больших отчетов

Установите в False для отчетов <100 страниц (может увеличить использование памяти)

SQL-запросы со звездой «SELECT *…» возвращает ненужные данные Используйте конкретные имена столбцов; консультируйтесь с администратором БД по оптимизации запросов
SQL-запросы сложной формы Замедляется работа с БД Консультируйтесь с администратором БД

Оптимизация печати