Советы по оптимизации отчетов
Внешний вид
Большие и\или сложные отчеты (100+ страниц или более 10минут генерации) требуют оптимизации состава и настроек перед использованием на практике, иначе, отчет не сделается за приемлемое время. Для этого требуется комплексно оценить имеющиеся ресурсы и внести оптимизирующие правки.
Оптимизация памяти
| Компонент | Проблема | Решение |
|---|---|---|
| Изображения | Большое потребление памяти при экспорте в RTF/TIFF, особенно при повторении | Ограничьте большие изображения в форматах RTF/TIFF
Примечание: PDF/Excel/HTML хранят дубликаты один раз (лучше для памяти, медленнее обработка) |
| Подотчеты | Каждый экземпляр потребляет память (умножается в повторяющихся секциях) | Минимизируйте подотчеты в секциях Detail
Лучшая практика: Создавайте экземпляры в событии ReportStart (один раз) вместо события Format (для каждого экземпляра) |
| CacheToDisk | Большие отчеты потребляют чрезмерную память |
Важно: Используйте свойство CacheToDiskLocation для физического пути (избегайте ограничений размера IsolatedStorage)
|
| Колонтитулы | Подсчет страниц/итоги в заголовках задерживают рендеринг и снижают эффективность CacheToDisk |
|
Оптимизация скорости
| Фактор | Влияние | Рекомендация |
|---|---|---|
| Изображения | Обнаружение дубликатов замедляет обработку (даже при экономии памяти) | Минимизируйте повторяющиеся изображения на страницах |
| Колонтитулы | Заголовки с итогами/подсчетом страниц задерживают рендеринг | По возможности размещайте итоги в нижних колонтитулах |
| CacheToDisk | Значительно увеличивает время загрузки |
Установите в False для отчетов <100 страниц (может увеличить использование памяти) |
| SQL-запросы со звездой | «SELECT *…» возвращает ненужные данные | Используйте конкретные имена столбцов; консультируйтесь с администратором БД по оптимизации запросов |
| SQL-запросы сложной формы | Замедляется работа с БД | Консультируйтесь с администратором БД |