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

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

Материал из Химсофт Вики
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 1: Строка 1:
Большие и\или сложные отчеты (100+ страниц или более 10минут генерации) требуют оптимизации состава и настроек перед использованием на практике, иначе, отчет не сделается за приемлемое время.
Большие и/или сложные отчеты (100+ страниц или более 10 минут генерации) требуют оптимизации состава и настроек перед использованием на практике, иначе, отчет не сделается за приемлемое время.
 
Для этого требуется комплексно оценить имеющиеся ресурсы и внести оптимизирующие правки.
Для этого требуется комплексно оценить имеющиеся ресурсы и внести оптимизирующие правки.


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

Текущая версия от 02:47, 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-запросы сложной формы Замедляется работа с БД Консультируйтесь с администратором БД

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

Элемент Соображение Действие
Виртуальный принтер Различия в окружениях (веб-приложения) Используйте виртуальный принтер, когда окружение генерации ≠ окружению просмотра/печати
Элементы линий Не сплошной LineStyle увеличивает размер спула
  • Сохраняйте LineStyle = Solid (по умолчанию)
  • Избегайте Dash, Dot и т.д. для границ