Кэширование

При работе с 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.
  • CachefilePath (Строковый). Путь к папке, в которой будут храниться кэшированные версии объектов среды разработки и файлы с кэшированными двоичными данными таблиц. Внутри указанной папки автоматически будет создаваться дополнительная иерархия папок:
    AsmCache<n>\Mod\<ID репозитория>\<номер сборки>\ - персональная папка для каждого репозитория; внутри нее создаются дополнительные папки, в которых будет сохраняться файловый кэш.
{HKEY_CURRENT_USER\Software\JSC Prognoz\Prognoz\<n>\Orcl8"}, где <n> - версия Prognoz Platform, например - 8.0.
  • BlobMaxBufferSize (DWORD). Размер буфера для работы с данными, хранящимися в полях двоичного типа. Размер буфера указывается в байтах. Данная настройка используется при работе с СУБД на базе Oracle 9.x\10.x\11.x.
{HKEY_CURRENT_USER\Software\JSC Prognoz\Prognoz\<n>\Dimensions"}, где <n> - версия Prognoz Platform, например - 8.0.
  • Cache (DWORD). Признак использования кэша элементов измерений в оперативной памяти, разделяемого между всеми сессиями пользователей. Используется для измерений, у которых не активирована настройка управления правами на элементы. Допустимые значения: 1 - использовать кэш в оперативной памяти.
{HKEY_CURRENT_USER\Software\JSC Prognoz\Prognoz\<n>\CacheKeeper"}, где <n> - версия Prognoz Platform, например - 8.0.
  • NotCachedInFile. Атрибут любого типа, при наличии данного атрибута двоичные данные не будут кэшироваться на локальном диске.

Примечание. При установке BI-сервера или сервера безопасности на веб-сервер IIS по умолчанию пул приложения будет запускаться под учетной записью Network Service; при установке на веб-сервер Apache - сам веб-сервер Apache по умолчанию работает под учетной записью Local System. Чтобы при работе веб-приложения использовались указанные в таблице флаги, записи в реестр должны быть добавлены из-под соответствующей учетной записи. Для этого можно воспользоваться приложением PsExec, которое входит в пакет системных программ Windows Sysinternals. Для запуска выполните команду «psexec -i -u "nt authority\network service" cmd.exe», при этом будет запущена командная строка Windows под указанной учетной записью. Далее в командной строке запустите редактор реестра с помощью команды «regedit» и создайте необходимые флаги.

Очистка кэша

Очистка кэша позволяет избежать использования потенциально устаревших данных.

Примечание. Очистка кэша доступна только в настольном приложении.

Для очистки кэша справочников и базы данных временных рядов выполните команду «Очистить кэш» меню «Сервис» в навигаторе объектов.

Для очистки кэша объектов среды разработки выполните команду менеджера безопасности «Репозиторий > Очистить кэш сборок».

Для очистки кэша регламентного отчета нажмите кнопку «Очистить» в окне «Кэш объекта».

Для очистки кэша данных различных объектов нажмите на кнопку «Очистить кэш» вкладки «Кэш» окна «Свойства объекта».

Для очистки кэша репозитория выполните команду «Очистить кэш» в главном меню «Сервис» навигатора объектов.

См. также:

Назначение и основные возможности навигатора объектов | Настройки кэширования