使用状況トラッキングと初期化ブロックの使用

このトピックでは、Oracle Analyticsで初期化ブロックと使用状況トラッキングを使用する場合のヒントについて説明します。

使用状況トラッキングの有効化

セッション変数初期化ブロックを最適化する最初のラウンドが完了したら、初期化ブロックの使用状況トラッキングを有効化して、そのパフォーマンスをより正しく理解します。

このトピックでは、Oracle BI Enterprise Edition (OBIEE)の使用状況トラッキングの表名が示されています。実際の名前は任意に指定できますが、各表の内容を区別する必要があります(PHYSICALLOGICALINITBLOCKなど)。

「システム設定」で使用状況トラッキングを有効化し、Business Intelligence (BI)サーバーを再起動して使用状況トラッキングを開始します。使用状況トラッキング・オプションを参照してください。

ceal_usage_tracking_init_block_table.pngの説明が続きます
図ceal_usage_tracking_init_block_table.pngの説明

初期化ブロックのモニター

使用状況トラッキングを有効にしたら、Oracle Analyticsにログインします。遅延されないすべてのセッション変数初期化ブロックは、ログイン時に実行され、初期化ブロック使用状況トラッキング表が移入されます。

SQL Developer、SQL*Plus、または別のSQLエントリ・ツールを使用して、セッション・ログから取得されたSESSION_ID (-1883570176など)を使用して次の問合せを初期化ブロック使用状況トラッキング表に対して実行します。

SELECT USER_NAME, SESSION_ID, BLOCK_NAME,
TO_CHAR(START_TS,'DD-MM-YYYY HH24:MI:SS') START_TIME,
TO_CHAR(END_TS,'DD-MM-YYYY HH24:MI:SS') END_TIME
FROM USAGE_TRACKING.S_NQ_INITBLOCK
WHERE SESSION_ID = -1883570176
ORDER BY SESSION_ID, START_TS, END_TS

USER_NAMEを使用してフィルタリングしないでください。かわりに、対象とするセッション・ログの行のSTART_TIMEおよびUSER_NAMEに注目してください。

USER_NAMEおよび(オプションの) START_TIMEに関連付けられたSESSION_IDを使用して問合せをフィルタリングします。

次の図は、問合せ結果を表で示しています。

ceal_init_block_usage_tracking_query.jpgの説明が続きます
図ceal_init_block_usage_tracking_query.jpgの説明

この表は、SIGNING ONおよびSIGNED ONコールに12秒かかっていることを示しています。次に、SIGNED OFFコールは、ユーザーが21分のアクティビティ後にログオフしていることを示しています。管理者は、操作に要する時間と、修正処理が必要な箇所を正確に把握できます。

初期化ブロックの使用状況トラッキングによって、ユーザー・セッション中に次の3つのシステム・コールが行われます:
  • SIGNING ON
  • SIGNED ON
  • SIGNED OFF

ノート:

特定のログイン問題を調査しない場合は、SIGNING ONSIGNED ONおよびSIGNED OFFという3つのブロックを無視してください。SESSION_IDは負数になることがあります。同じSESSION_IDに対して2つの異なるUSER_NAME値(BISystemUserと実際のユーザー名)があります。

初期化ブロックを遅延として指定できます。これらは元のユーザー名を使用して必要に応じて実行されます。遅延されないすべてのセッション変数初期化ブロックは、ユーザー・ログイン時に実行され、初期化ブロック使用状況トラッキング表が移入されます。これらはBISystemUserユーザー名を使用して実行されます。

Oracle Analytics Server (OAS)での初期化ブロックのチューニング

この項は、Oracle Analytics Serverにのみ適用されます。

2022年のOracle Analyticsでは、セッション変数初期化ブロックがパラレルで実行されるという大きな変更がありました。NUM_INIT_BLOCK_THREADS_PER_USERパラメータは、並列で実行できる初期化ブロック・スレッドの数を制御します。次の例に示すように、これはNQSCONFIG.INIファイルのSECURITYセクションで定義されます:

[SECURITY]
NUM_INIT_BLOCK_THREADS_PER_USER = 4;

NUM_INIT_BLOCK_THREADS_PER_USERでは、ユーザーの初期化ブロックを実行するために使用されるパラレル・スレッドの数を指定します。デフォルト値は4で、初期化ブロックが最適化されている場合には十分です。セッション変数初期化ブロックが予想より長くかかる場合は、NUM_INIT_BLOCK_THREADS_PER_USER値を8に増やしてBIサーバーを再起動してください。

最大値は16です。

ノート:

特定の初期化ブロックの実行時間が長い場合は、データベースで基礎となるSQLコードとそのパフォーマンスを調査してください。

最適なログインおよびビジュアライゼーション・エクスペリエンスを提供するために、必ずすべてのインスタンスの初期化ブロックを最適化してください。最適化すると、初期化ブロック使用状況トラッキングの支援によって、インスタンスのボトルネックを特定できます。「NQSConfig.INIファイルの構成設定」を参照してください。

Oracle Analytics Serverの使用状況トラッキングの詳細は、使用状況のトラッキングを参照してください。