キャッシュ・ヒットについて
キャッシングが有効な場合は、各問合せが評価されて、キャッシュ・ヒットと見なされるかどうかが判断されます。
キャッシュ・ヒットとは、Oracle BIサーバーがキャッシュを使用して問合せに答えを返すことができ、データベースにまったくアクセスしなかったことを意味します。Oracle BIサーバーは、問合せキャッシュを使用して、集計と同じかそれ以上のレベルで、問合せに答えを返すことができます。
キャッシュがヒットするかどうかは、多くの要因によって決まります。次の表はそれらの要因を示しています。
要因またはルール | 説明 |
---|---|
|
キャッシュ・ヒットと見なされるためには、新しい問合せの このルールはキャッシュ・ヒットの最小要件ですが、このルールを満たしていても、キャッシュ・ヒットが保証されるわけではありません。この表に記載されている他のルールも適用されます。 |
|
Oracle BIサーバーは、キャッシュされた結果の式を計算して、新しい問合せに答えを返すことができます。ただし、キャッシュされた結果にすべての列がある必要があります。たとえば、次の問合せ
この問合せは、次の問合せのキャッシュをヒットします。
|
|
問合せがキャッシュ・ヒットと見なされるためには、
さらに、
REGIONがプロジェクション・リストにないため、前のリストのシード中の問合せに対してキャッシュ・ヒットになりません。 |
ディメンションのみの問合せが完全一致している |
問合せがディメンションのみで、問合せにファクトやメジャーが含まれない場合、キャッシュされた問合せの投影列が完全一致する場合のみ、キャッシュはヒットします。これにより、ディメンション表の論理ソースが複数ある場合の誤検出が回避されます。 |
特殊関数を使用する問合せが完全一致している |
時系列関数( |
一連の論理表が一致している |
キャッシュ・ヒットと見なされるためには、受信するすべての問合せが、キャッシュ・エントリと同じ論理表のセットを持つ必要があります。このルールにより、誤ったキャッシュ・ヒットが回避されます。たとえば、 |
セキュリティ・セッション変数を含めて、セッション変数値が一致している |
論理SQL文または物理SQL文がセッション変数を参照している場合、セッション変数値が一致している必要があります。それ以外の場合、キャッシュはヒットしません。 また、セキュリティ・センシティブなセッション変数の値は、論理SQL文自体がセッション変数を参照していなくても、セマンティック・モデルに定義されているセキュリティ・セッション変数値と一致する必要があります。行レベルのデータベース・セキュリティを使用している場合の適切なキャッシュ結果の確認を参照してください。 |
同等の結合条件 |
キャッシュ・ヒットと見なされるためには、新しい問合せリクエストで作成された結合済論理表が、キャッシュされた結果と同じ(またはサブセット)である必要があります。 |
同じ |
キャッシュされた問合せでは、 |
問合せに互換性のある集計レベルが含まれている |
集計レベルの情報をリクエストする問合せでは、下位の集計レベルで、キャッシュされた結果を使用できます。たとえば、次の問合せは、仕入先、地域および市区レベルでの販売数量をリクエストしています。
次の問合せは、市区レベルでの販売数量をリクエストしています。
2番目の問合せは、最初の問合せのキャッシュ・ヒットになります。 |
追加の集計の制限 |
たとえば、列 |
|
SELECTリストに含まれていない列でソートする問合せは、キャッシュ・ミスになります。 |
詳細なヒット検出によるキャッシュ・ミスの回避 |
NQSConfig.INIファイル内でパラメータ |
キャッシュ・ヒット動作の診断 |
キャッシュ・ヒット動作をより適切に評価するには、次の例に示すように、ENABLE_CACHE_DIAGNOSTICSセッション変数を4に設定します。
|
行レベルのデータベース・セキュリティを使用している場合の適切なキャッシュ結果の確認
仮想プライベート・データベース(VPD)のような行レベルのデータベース・セキュリティ方針を使用している場合、返されるデータ結果は、ユーザーの認可資格証明で決まります。
このため、Oracle BIサーバーは、行レベルのデータベース・セキュリティを使用しているかどうか、およびセキュリティに関係する変数を把握する必要があります。
すべてのセキュリティ・センシティブ変数を含み、照合するキャッシュ・エントリでのみキャッシュ・ヒットが起こるようにするには、データベース・オブジェクトとセッション変数オブジェクトを管理ツールで次のように適切に構成する必要があります。
-
データベース・オブジェクト。物理レイヤーにおいて、「データベース」ダイアログの「一般ー」タブで「仮想プライベート・データベース」を選択し、データ・ソースが行レベルのデータベース・セキュリティを使用していることを指定します。
行レベルのデータベース・セキュリティと共有キャッシュを使用している場合、このオプションを選択して、セキュリティセンシティブな変数が一致しないキャッシュ・エントリが共有されないようにする必要があります。
-
セッション変数オブジェクト。セキュリティに関連する変数については、行レベルのデータベース・セキュリティ・ストラテジを使用する場合、「セッション変数」ダイアログで「セキュリティ・センシティブ」を選択し、セキュリティ・センシティブとして識別します。このオプションによって、キャッシュ・エントリはセキュリティ・センシティブ変数としてマークされ、受信するすべての問合せでセキュリティ・センシティブ変数を照合できます。
次のリソースを参照してください。
-
Oracle Analytics Serverメタデータ・リポジトリの管理のデータベース内の行レベル・セキュリティの設定
-
Oracle Analytics Serverメタデータ・リポジトリの管理のセッション変数の管理
-
データベースおよびセッション変数オブジェクトの一般情報は、Oracle Analytics Serverメタデータ・リポジトリの管理を参照してください