При использовании Data Gateway или Remote Data Connector с Oracle Analytics Cloud возникает небольшой перерасход ресурсов на продолжительность выполнения каждого запроса.
Дополнительную продолжительность при запуске отчета невозможно заметить, поскольку она составляет менее 0,3 секунды. Однако могут возникнуть проблемы с производительностью при запуске большого количества блоков инициализации (количество зависит от требований к производительности) при каждом входе в систему, так как запросы блоков инициализации выполняются последовательно. В этой теме описываются способы сократить количество блоков инициализации сеанса.
Использование параметра отложенного выполнения для блоков инициализации не устраняет проблему, поскольку блоки инициализации выполняются при открытии первой страницы инфопанели.
При использовании приложений Oracle BI Applications это представляет собой проблему, так как в них выполняется более 200 блоков инициализации. Для Oracle Analytics Cloud лучший способ избежать этих проблем с производительностью – уменьшить количество блоков инициализации.
Oracle рекомендует следующие способы сократить количество блоков инициализации сеанса.
Например, в приложениях Oracle BI отключите блоки инициализации, ссылающиеся на модули приложений Oracle BI, которые больше не используются.
row_wise
, которые используют один и тот же пул подключений, и возвращайте один и тот же тип данных, используя UNION ALL
между их запросами.
Пример:
Init block 1: query1 Init block 2: query2 Merged init block: query1 union all query2
dual
или W_DUAL_G
, и поместите встроенное системное значение в инициализатор по умолчанию для соответствующей переменной.select
.HIDE
является текущим значением для этих переменных) или если Oracle Human Capital Management не используется в качестве источника данных Oracle BI Applications (таких блоков инициализации в Oracle BI Applications насчитывается 100):
HR xxx Attribute yyy
row_wise
и используют тот же пул подключений. Пример:
Блок инициализации 1 основан на запросе 1: select colA from tableA where….
Блок инициализации 2 основан на запросе 2: select colB from tableB where….
Можно объединить их в один блок инициализации, используя такой запрос:
Select MAX(colA), MAX(colB) from ( select cola as cola, null as colB from tableA where…. Union all Select null, colB from tableB where…) tmp
Можно выполнить столько объединений, сколько необходимо, чтобы получить все переменные из одного и того же пула подключений в одном запросе.
Это непросто реализовать или поддерживать. Также есть риск допустить ошибки при создании запросов и назначении всех переменных одному блоку инициализации.
Проявляя осторожность и внимательность во время внедрения и поддержки запросов и переменных блока инициализации, можно значительно сократить время, необходимое для входа в систему и отображения первой страницы инфопанели.