При работе с Prognoz Platform 8 для ускорения доступа к данным реализовано кэширование объектов репозитория и кэширование данных:
| Кэширование объектов | Кэширование данных | |
| Справочники | ||
| табличные справочники | • |
• |
| вычисляемые справочники | • |
• |
| справочники НСИ | • |
• |
| табличные справочники НСИ | • |
• |
| составные справочники НСИ | • |
• |
| календарные справочники | — |
• |
| табличные составные справочники НСИ | — |
• |
| Базы данных временных рядов | • |
• |
| Объекты среды разработки | • |
— |
| Регламентные отчеты | • |
— |
| Кубы (всех типов, кроме виртуального) | — |
• |
| Карты | • |
— |
Для кэширования источников данных в Prognoz Platform 8 применяется механизм in-memory, позволяющий избежать необходимости каждый раз отправлять запрос на выборку данных из источника. При использовании механизма in-memory в оперативную память загружается специальная структура, хранящая данные из источника. В последующем, вся обработка данных (построение среза данных, фильтрация, сортировка и тому подобное) выполняется с данной структурой непосредственно в оперативной памяти, без обращения к источнику данных. Таким образом, сокращается время реакции Prognoz Platform 8 при работе с данными и повышается интерактивность работы пользователя.
При кэшировании справочников и базы данных временных рядов на компьютере пользователя создаются временные копии объекта, содержащие часто используемые данные и ссылки на используемые объекты.
Примечание. Кэш справочников и базы данных временных рядов хранится и используется в рамках одного соединения с репозиторием.
Кэширование справочников и базы данных временных рядов работает интеллектуально и доступно для разных пользователей, если они имеют одинаковые права доступа и значения параметров. То есть одновременно может быть закэшировано несколько экземпляров одного и того же объекта (например, для разных значений параметра).
При кэшировании объектов среды разработки используется файловый кэш, создаваемый в папке, которая задана операционной системой (более подробно смотрите в статье базы знаний «Кэширование сборок при компиляции форм и модулей»). Также при кэшировании объектов среды разработки учитывается флажок «Кэширование сборок только на локальном диске», указываемый в параметрах репозитория.
При кэшировании регламентных отчетов создаются экземпляры объекта, открытого с определенными значениями параметров. При открытии объекта с какими-либо параметрами осуществляется проверка наличия в кэше записи, соответствующей данным параметрам. Если запись будет найдена, то будет извлечена и открыта кэшированная версия объекта. Если запись для указанных параметров отсутствует, то будет открыта последняя версия объекта из репозитория. При этом также будут открыты все объекты, от которых он зависит. Кэш экземпляра регламентного отчета хранится в базе репозитория. Управление кэшированием для отчета производится с помощью окна «Кэш объекта».
Для ускорения отрисовки карты в отчетах используется кэширование карт. При открытии отчета происходит проверка кэша на наличие в нем карты. Если карта в кэше найдена, в отчете будет отображена карта из кэша. Если карты в кэше нет, будет открыта карта из репозитория и обновлен кэш. Кэш с картами является общим кэшем для всех открытых репозиториев. При закрытии всех репозиториев кэш карт очищается.
При выборе огромных значков представления объектов в навигаторе объектов происходит кэширование изображений для предварительного просмотра. Кэширование изображений используется только для отчетов, созданных с помощью инструментов «Аналитические панели», «Аналитические запросы (OLAP)», «Отчеты» и «Анализ временных рядов».
При кэшировании данных в базе репозитория в двоичном виде создается и сохраняется матрица данных. Этот кэш является общим для всех пользователей и может быть сброшен любым пользователем. Кэш стандартного куба доступен для обновления по расписанию.
Для работы с кэшированием используйте вкладку «Кэш» окна «Свойства объекта».
Примечание. Для того чтобы запросить обновленные данные объектов, может потребоваться принудительная очистка кэша.
Особенности кэша:
кэш хранится отдельным объектом репозитория, невидимым для пользователя;
кэш является дочерним элементом источника, поэтому при удалении источника удаляется его кэш-объект;
для одного источника может быть создан только один кэш;
при изменении данных в источнике необходимо вручную обновлять кэш. Для кубов доступно обновление кэша по расписанию с помощью планировщика задач;
двоичные данные, хранящиеся в таблицах, кэширутются на локальном диске, также как и объекты среды разработки. Папка для хранения файлов с двоичными данными располагается в профиле пользователя рядом с той папкой, которая определена для кэша объектов среды разработки. При необходимости папку можно изменить, более подробно читайте ниже в подразделе «Управление настройками».
При работе BI-сервера Prognoz Platform 8 извлечение и хранение данных, необходимых для работы веб-приложения, осуществляется в памяти самого BI-сервера. Также систему можно расширить путем введения дополнительных (более производительных) BI-серверов, на которые будет возложена функция извлечения и кэширования данных из базы репозитория. BI-сервер с веб-приложением будет обращаться к этим BI-серверам и получать поток с необходимыми данными без дополнительного обращения к СУБД.
Для использования такой схемы необходимо в реестре или файле settings.xml заполнить раздел Service. В данном разделе указываются адреса удаленных BI-серверов и настройки репозиториев, для которых будет работать указанная схема кэширования данных.
Примечание. Указанный режим работы кэширования актуален только для тех объектов, для которых включено кэширование в репозитории.
Для управления настройками кэширования реализованы различные флаги в реестре. В таблице ниже представлен список доступных флагов:
| Ветка реестра | Параметры |
| {HKEY_CURRENT_USER\Software\JSC Prognoz\Prognoz\<n>"}, где <n> - версия Prognoz Platform, например - 8.0. |
|
| {HKEY_CURRENT_USER\Software\JSC Prognoz\Prognoz\<n>\Orcl8"}, где <n> - версия Prognoz Platform, например - 8.0. |
|
| {HKEY_CURRENT_USER\Software\JSC Prognoz\Prognoz\<n>\Dimensions"}, где <n> - версия Prognoz Platform, например - 8.0. |
|
| {HKEY_CURRENT_USER\Software\JSC Prognoz\Prognoz\<n>\CacheKeeper"}, где <n> - версия Prognoz Platform, например - 8.0. |
|
Примечание. При установке BI-сервера или сервера безопасности на веб-сервер IIS по умолчанию пул приложения будет запускаться под учетной записью Network Service; при установке на веб-сервер Apache - сам веб-сервер Apache по умолчанию работает под учетной записью Local System. Чтобы при работе веб-приложения использовались указанные в таблице флаги, записи в реестр должны быть добавлены из-под соответствующей учетной записи. Для этого можно воспользоваться приложением PsExec, которое входит в пакет системных программ Windows Sysinternals. Для запуска выполните команду «psexec -i -u "nt authority\network service" cmd.exe», при этом будет запущена командная строка Windows под указанной учетной записью. Далее в командной строке запустите редактор реестра с помощью команды «regedit» и создайте необходимые флаги.
Очистка кэша позволяет избежать использования потенциально устаревших данных.
Примечание. Очистка кэша доступна только в настольном приложении.
Для очистки кэша справочников и базы данных временных рядов выполните команду «Очистить кэш» меню «Сервис» в навигаторе объектов.
Для очистки кэша объектов среды разработки выполните команду менеджера безопасности «Репозиторий > Очистить кэш сборок».
Для очистки кэша регламентного отчета нажмите кнопку «Очистить» в окне «Кэш объекта».
Для очистки кэша данных различных объектов нажмите на кнопку «Очистить кэш» вкладки «Кэш» окна «Свойства объекта».
Для очистки кэша репозитория выполните команду «Очистить кэш» в главном меню «Сервис» навигатора объектов.
См. также:
Назначение и основные возможности навигатора объектов | Настройки кэширования