キャッシュの使用方針

問合せキャッシングの主要な利点の1つは、表面上の問合せパフォーマンスが向上することです。

問合せキャッシングは、オフピーク時に問合せを実行し、その結果をキャッシングしてキャッシュをシードするために重要であることがあります。適切なシード方針は、キャッシュ・ヒットがいつ発生するかを理解している必要があります。

すべてのユーザーのキャッシュをシードするには、次の問合せでキャッシュをシードします。

SELECT User, SRs

SELECT User, SRsを使用してキャッシュをシードすると、次の問合せがキャッシュ・ヒットです。

SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER1)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER2)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER3)

このセクションには次のトピックが含まれます:

キャッシュを移入するための一連の問合せの実行

キャッシュ・ヒットの可能性を最大限に高める1つの方法は、一連の問合せを実行してキャッシュを移入することです。

キャッシュをシードする一連の問合せを作成するときに使用する問合せの種類に関して、いくつかの推奨事項があります。

  • 共通の事前作成問合せ。よく実行される問合せや、処理に多くのリソースが必要な問合せは特に、優れたキャッシュ・シード問合せです。その結果がダッシュボードに埋め込まれる問合せは、共通問合せのよい例です。

  • 式が含まれないSELECTリスト。SELECTリストの列から式をなくすと、キャッシュ・ヒットの可能性が広がります。式が含まれるキャッシュ列は、同じ式が含まれる新しい問合せにのみ答えを返します。式が含まれないキャッシュ列は、任意の式を含むその列に対するリクエストに答えを返すことができます。たとえば、キャッシュされた次のようなリクエストがあるものとします。

    SELECT QUANTITY, REVENUE...
    

    これは、次のような新しい問合せに答えを返すことができます。

    SELECT QUANTITY/REVENUE... 
    

    ただし、逆は成り立ちません。

  • WHERE句の不使用。キャッシュされた結果にWHERE句がない場合、これを使用して、プロジェクション・リストの列が含まれるSELECTリストとWHERE句のキャッシュ・ヒット・ルールを満たす問合せに、答えを返すことができます。

一般に、キャッシュのシードに最適な問合せは、データベースの処理リソースを大量に使用し、再実行される可能性がある問合せです。多くの行を返す単純な問合せでキャッシュをシードしないように注意してください。このような問合せでは(たとえば、SELECT * FROM PRODUCTSPRODUCTSは単一のデータベース表に直接マップします)、データベース処理はほとんど必要ありません。このような問合せで犠牲となるのはネットワークとディスクのオーバーヘッドですが、これらはキャッシングでは軽減されません。

Oracle BIサーバーがセマンティック・モデル変数をリフレッシュする場合、ビジネス・モデルがセマンティック・モデル変数を参照しているかどうかを判別します。参照している場合は、Oracle BIサーバーによって、そのビジネス・モデルのすべてのキャッシュがパージされます。リポジトリの変更が問合せキャッシュに及ぼす影響を参照してください。

エージェントを使用したOracle BIサーバー問合せキャッシュのシード

エージェントを構成して、Oracle BIサーバー問合せキャッシュをシードできます。

キャッシュをシードすることで、ユーザーが分析を実行したり、ダッシュボードに埋め込まれている分析を表示したりするときのレスポンス時間を向上できます。このデータをリフレッシュするリクエストを実行するようにエージェントをスケジュールすることで、これを実現できます。

  1. Oracle Analytics Serverにログインし、「新規」「エージェント」の順に選択します。
  2. 「一般」タブで、「実行者」オプションの「受信者」を選択します。パーソナライズされたキャッシュ・シードでは、各受信者のデータ可視性に基づいて、エージェントによる各受信者へのコンテンツの配信をカスタマイズします。
  3. 「スケジュール」タブで、キャッシュをシードするタイミングを指定します。
  4. オプション: 「条件」を選択し、条件付きリクエストを作成または選択します。たとえば、ETLプロセスがいつ完了するかを決定するビジネス・モデルがあるものとします。このビジネス・モデルに基づくレポートを使用して、キャッシュ・シードを開始する条件付きトリガーとなることができます。
  5. 「配信コンテンツ」タブで、個々のリクエスト、またはキャッシュ・シードの対象となるダッシュボード・ページ全体を選択します。ダッシュボード・ページの選択は、時間の節約になります。
  6. 「受信者」タブで、受信者である個々のユーザーまたはグループを選択します。
  7. 「送信先」タブで、すべてのユーザー宛先をクリアし、「Oracle Analytics Serverキャッシュ」を選択します。
  8. 右上隅にある「保存」ボタンを選択して、エージェントを保存します。

キャッシュをシードしているエージェントと他のエージェントとの唯一の違いは、前のキャッシュが自動的に消去され、ダッシュボードにアラートとして表示されないことです。

ノート:

キャッシュ・シード・エージェントは、完全一致の問合せのみパージするため、古いデータが引き続き存在する可能性があります。エージェント問合せは非定型の問合せやドリルには対処しないため、必ずキャッシング方針には常にキャッシュのパージを含めるようにします。