Советы по оптимизации отчетов: различия между версиями
Внешний вид
Sidminik (обсуждение | вклад) |
Sidminik (обсуждение | вклад) Нет описания правки |
||
| (не показаны 2 промежуточные версии этого же участника) | |||
| Строка 1: | Строка 1: | ||
Большие и | Большие и/или сложные отчеты (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 | Большие отчеты потребляют чрезмерную память |
Важно: Используйте свойство CacheToDiskLocation для физического пути (избегайте ограничений размера IsolatedStorage)
|
| Колонтитулы | Подсчет страниц/итоги в заголовках задерживают рендеринг и снижают эффективность CacheToDisk |
|
Оптимизация скорости
| Фактор | Влияние | Рекомендация |
|---|---|---|
| Изображения | Обнаружение дубликатов замедляет обработку (даже при экономии памяти) | Минимизируйте повторяющиеся изображения на страницах |
| Колонтитулы | Заголовки с итогами/подсчетом страниц задерживают рендеринг | По возможности размещайте итоги в нижних колонтитулах |
| CacheToDisk | Значительно увеличивает время загрузки |
Установите в False для отчетов <100 страниц (может увеличить использование памяти) |
| SQL-запросы со звездой | «SELECT *…» возвращает ненужные данные | Используйте конкретные имена столбцов; консультируйтесь с администратором БД по оптимизации запросов |
| SQL-запросы сложной формы | Замедляется работа с БД | Консультируйтесь с администратором БД |
Оптимизация печати
| Элемент | Соображение | Действие |
|---|---|---|
| Виртуальный принтер | Различия в окружениях (веб-приложения) | Используйте виртуальный принтер, когда окружение генерации ≠ окружению просмотра/печати |
| Элементы линий | Не сплошной LineStyle увеличивает размер спула |
|