Отслеживание блоков инициализации

При использовании 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, и поместите встроенное системное значение в инициализатор по умолчанию для соответствующей переменной.
  • Объедините оставшиеся блоки инициализации, которые выбирают данные из Dual, в одну инструкцию select.
  • Для клиентов Oracle BI Applications отключите все блоки инициализации, используемые для получения имен и значений пользовательских атрибутов Oracle Human Capital Management, если соответствующий атрибут не используется (если стандартное значение по умолчанию 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

    Можно выполнить столько объединений, сколько необходимо, чтобы получить все переменные из одного и того же пула подключений в одном запросе.

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

Проявляя осторожность и внимательность во время внедрения и поддержки запросов и переменных блока инициализации, можно значительно сократить время, необходимое для входа в систему и отображения первой страницы инфопанели.