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