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