DBMS_RESULT_CACHE
パッケージは、SQLの結果キャッシュおよびPL/SQLファンクションの結果キャッシュによって使用される共有プールの一部をDBAが管理するためのインタフェースを提供します。これらのキャッシュは同じインフラストラクチャを使用します。 このため、たとえば、DBMS_RESULT_CACHE
.BYPASS
では、両方のキャッシュに対してバイパスまたは使用が設定され、DBMS_RESULT_CACHE
.FLUSH
では、SQL文の問合せおよびPL/SQLファンクションの両方について、キャッシュされた結果がすべてフラッシュされます。
関連項目:
|
この章では、次の項目について説明します。
表107-2 DBMS_RESULT_CACHEパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
結果キャッシュのバイパス・モードを設定します。 |
|
結果キャッシュからすべてのオブジェクトを削除しようとします。引数に応じて、メモリーを保持または解放し、統計を保持または消去します。 |
|
指定した依存オブジェクトに依存するすべての結果セットのオブジェクトを無効化します。 |
INVALIDATE_OBJECTファンクションおよびプロシージャ |
指定した結果セットのオブジェクトを無効化します。 |
|
結果キャッシュのメモリー使用量のレポートを作成します。 |
|
結果キャッシュのステータスをチェックします。 |
このプロシージャは、結果キャッシュのバイパス・モードを設定します。
バイパス・モードをオンにすると、キャッシュされた結果は使用されなくなり、新しい結果はキャッシュに保存されません。
バイパス・モードをオフにすると、キャッシュは通常の操作を再開します。
構文
DBMS_RESULT_CACHE.BYPASS ( bypass_mode IN BOOLEAN);
パラメータ
表107-3 BYPASSプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
使用上の注意
この操作は、データベース・インスタンス固有です。
例
この操作は、実行中のシステムでPL/SQLコードにホット・パッチを適用する必要がある場合に使用できます。結果がキャッシュされたファンクションが直接または推移的に依存しているPL/SQLモジュールにコード・パッチが適用された場合、結果キャッシュのファンクションに関連付けられているキャッシュされた結果は自動的にはフラッシュされません(インスタンスが再開またはバウンスしない場合)。フラッシュは手動で行う必要があります。
パッチ・プロセスを正常に行うには、次の手順を実行します。
結果キャッシュをバイパス・モードに設定し、既存の結果をフラッシュします。
BEGIN DBMS_RESULT_CACHE.BYPASS(TRUE); DBMS_RESULT_CACHE.FLUSH; END; /
Oracle Real Application Clusters環境では、インスタンスごとにこのステップを実行する必要があります。
PL/SQLコード・パッチを適用します。
キャッシュのバイパス・モードを無効にして、結果キャッシュの使用を再開します。
BEGIN DBMS_RESULT_CACHE.BYPASS(FALSE); END; /
Oracle Real Application Clusters環境では、インスタンスごとにこのステップを実行する必要があります。
このファンクションおよびプロシージャは、結果キャッシュからすべてのオブジェクトを削除しようとします。引数に応じて、メモリーを保持または解放し、統計を保持または消去します。
構文
DBMS_RESULT_CACHE.FLUSH ( retainMem IN BOOLEAN DEFAULT FALSE, retainSta IN BOOLEAN DEFAULT FALSE) RETURN BOOLEAN;
DBMS_RESULT_CACHE.FLUSH ( retainMem IN BOOLEAN DEFAULT FALSE, retainSta IN BOOLEAN DEFAULT FALSE);
パラメータ
表107-4 FLUSHファンクションおよびプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
|
戻り値
すべてのオブジェクトの削除が成功した場合はTRUE
。
このファンクションおよびプロシージャは、指定した依存オブジェクトに依存するすべての結果セットのオブジェクトを無効化します。
構文
DBMS_RESULT_CACHE.INVALIDATE ( owner IN VARCHAR2, name IN VARCHAR2) RETURN NUMBER;
DBMS_RESULT_CACHE.INVALIDATE ( owner IN VARCHAR2, name IN VARCHAR2);
DBMS_RESULT_CACHE.INVALIDATE ( object_id IN BINARY_INTEGER) RETURN NUMBER;
DBMS_RESULT_CACHE.INVALIDATE ( object_id IN BINARY_INTEGER);
パラメータ
表107-5 INVALIDATEファンクションおよびプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
スキーマ名。 |
|
オブジェクト名。 |
|
ディクショナリのオブジェクト番号。 |
戻り値
無効化されているオブジェクトの名前。
このファンクションおよびプロシージャは、指定した結果セットのオブジェクトを無効化します。
構文
DBMS_RESULT_CACHE.INVALIDATE_OBJECT ( id IN BINARY_INTEGER) RETURN NUMBER;
DBMS_RESULT_CACHE.INVALIDATE_OBJECT ( id IN BINARY_INTEGER);
DBMS_RESULT_CACHE.INVALIDATE_OBJECT ( cache_id IN VARCHAR2) RETURN NUMBER;
DBMS_RESULT_CACHE.INVALIDATE_OBJECT ( cache_id IN VARCHAR2);
パラメータ
戻り値
無効化されているオブジェクトの名前。
このプロシージャは、結果キャッシュのメモリー使用量のレポートを作成します。
構文
DBMS_RESULT_CACHE.MEMORY_REPORT ( detailed IN BOOLEAN DEFAULT FALSE);
パラメータ
表107-7 MEMORY_REPORTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
|
使用上の注意
SQL*Plusからこのプロシージャを起動するには、SERVEROUTPUTがオンになっている必要があります。
このファンクションは、結果キャッシュのステータスをチェックします。
構文
DBMS_RESULT_CACHE.STATUS RETURN VARCHAR2;
戻り値
次のいずれかの値です。
STATUS_DISA
: キャッシュは利用できません。
STATUS_ENAB
: キャッシュは利用できません。
STATUS_BYPS
: キャッシュは一時的に利用できませんでした。
STATUS_SYNC
: キャッシュは利用できますが、RACノードと同期化されます。