ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

122 DBMS_RESULT_CACHE

DBMS_RESULT_CACHEパッケージは、SQLの結果キャッシュおよびPL/SQLファンクションの結果キャッシュによって使用される共有プールの一部をDBAが管理するためのインタフェースを提供します。これらのキャッシュは同じインフラストラクチャを使用します。このため、たとえば、DBMS_RESULT_CACHE.BYPASSでは、両方のキャッシュに対してバイパスまたは使用が設定され、DBMS_RESULT_CACHE.FLUSHでは、SQL文の問合せおよびPL/SQLファンクションの両方について、キャッシュされた結果がすべてフラッシュされます。


関連項目:

  • クロスセッションのPL/SQLファンクションの結果キャッシュを使用する方法に関する詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。

  • 結果キャッシュの概念の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。


この章では、次の項目について説明します。


DBMS_RESULT_CACHEの使用方法


定数

表122-1 DBMS_RESULT_CACHEの定数

定数 定義

STATUS_BYPS

CONSTANT VARCHAR(10) := 'BYPASS';

STATUS_CORR

CONSTANT VARCHAR(10) := 'CORRUPT';

STATUS_DISA

CONSTANT VARCHAR(10) := 'DISABLED';

STATUS_ENAB

CONSTANT VARCHAR(10) := 'ENABLED';

STATUS_SYNC

CONSTANT VARCHAR(10) := 'SYNC';



DBMS_RESULT_CACHEサブプログラムの要約

表122-2 DBMS_RESULT_CACHEパッケージのサブプログラム

サブプログラム 説明

BYPASSプロシージャ


結果キャッシュのバイパス・モードを設定します。

FLUSHファンクションおよびプロシージャ


結果キャッシュからすべてのオブジェクトを削除しようとします。引数に応じて、メモリーを保持または解放し、統計を保持または消去します。

INVALIDATEファンクションおよびプロシージャ


指定した依存オブジェクトに依存するすべての結果セットのオブジェクトを無効化します。

INVALIDATE_OBJECTファンクションおよびプロシージャ


指定した結果セットのオブジェクトを無効化します。

MEMORY_REPORTプロシージャ


結果キャッシュのメモリー使用量のレポートを作成します。

STATUSファンクション


結果キャッシュのステータスをチェックします。



BYPASSプロシージャ

このプロシージャは、結果キャッシュのバイパス・モードを設定します。

  • バイパス・モードをオンにすると、キャッシュされた結果は使用されなくなり、新しい結果はキャッシュに保存されません。

  • バイパス・モードをオフにすると、キャッシュは通常の操作を再開します。

構文

DBMS_RESULT_CACHE.BYPASS (
   bypass_mode    IN   BOOLEAN,
   session        IN   BOOLEAN);

パラメータ

表122-3 BYPASSプロシージャのパラメータ

パラメータ 説明

bypass_mode

  • TRUE =>結果キャッシュの使用がバイパスされます。

  • FALSE =>結果キャッシュの使用がオンになります。

session

  • TRUE =>現在のセッションに適用されます。

  • FALSE (デフォルト) =>すべてのセッションに適用されます。


使用上の注意

この操作は、データベース・インスタンス固有です。

この操作は、実行中のシステムでPL/SQLコードにホット・パッチを適用する必要がある場合に使用できます。結果がキャッシュされたファンクションが直接または推移的に依存しているPL/SQLモジュールにコード・パッチが適用された場合、結果キャッシュのファンクションに関連付けられているキャッシュされた結果は自動的にはフラッシュされません(インスタンスが再開またはバウンスしない場合)。フラッシュは手動で行う必要があります。

パッチ・プロセスを正常に行うには、次の手順を実行します。

  1. 結果キャッシュをバイパス・モードに設定し、既存の結果をフラッシュします。

    BEGIN
       DBMS_RESULT_CACHE.BYPASS(TRUE);
       DBMS_RESULT_CACHE.FLUSH;
    END;
    /
    

    Oracle Real Application Clusters環境では、インスタンスごとにこのステップを実行する必要があります。

  2. PL/SQLコード・パッチを適用します。

  3. キャッシュのバイパス・モードを無効にして、結果キャッシュの使用を再開します。

    BEGIN
       DBMS_RESULT_CACHE.BYPASS(FALSE);
    END;
    /
    

    Oracle Real Application Clusters環境では、インスタンスごとにこのステップを実行する必要があります。


FLUSHファンクションおよびプロシージャ

このファンクションおよびプロシージャは、結果キャッシュからすべてのオブジェクトを削除しようとします。引数に応じて、メモリーを保持または解放し、統計を保持または消去します。

構文

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); 

パラメータ

表122-4 FLUSHファンクションおよびプロシージャのパラメータ

パラメータ 説明

retainMem

  • TRUE =>キャッシュの空きメモリーを保持します。

  • FALSE(デフォルト)=>システムに対して空きメモリーを解放します。

retainSta

  • TRUE =>既存のキャッシュ統計を保持します。

  • FALSE(デフォルト)=>既存のキャッシュ統計を消去します。


戻り値

すべてのオブジェクトの削除が成功した場合はTRUE


INVALIDATEファンクションおよびプロシージャ

このファンクションおよびプロシージャは、指定した依存オブジェクトに依存するすべての結果セットのオブジェクトを無効化します。

構文

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);

パラメータ

表122-5 INVALIDATEファンクションおよびプロシージャのパラメータ

パラメータ 説明

owner

スキーマ名。

name

オブジェクト名。

object_id

ディクショナリのオブジェクト番号。


戻り値

無効化されているオブジェクトの名前。


INVALIDATE_OBJECTファンクションおよびプロシージャ

このファンクションおよびプロシージャは、指定した結果セットのオブジェクトを無効化します。

構文

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);

パラメータ

表122-6 INVALIDATEファンクションおよびプロシージャのパラメータ

パラメータ 説明

id

結果キャッシュ内のキャッシュ・オブジェクトのアドレス。

cache_id

キャッシュID。


戻り値

無効化されているオブジェクトの名前。


MEMORY_REPORTプロシージャ

このプロシージャは、結果キャッシュのメモリー使用量のレポートを作成します。

構文

DBMS_RESULT_CACHE.MEMORY_REPORT (
   detailed   IN   BOOLEAN DEFAULT FALSE);

パラメータ

表122-7 MEMORY_REPORTプロシージャのパラメータ

パラメータ 説明

detailed

  • TRUE =>より詳細なレポートを作成します。

  • FALSE(デフォルト)=>標準的なレポートを作成します。


使用上の注意

SQL*Plusからこのプロシージャを起動するには、SERVEROUTPUTがオンになっている必要があります。


STATUSファンクション

このファンクションは、結果キャッシュのステータスをチェックします。

構文

DBMS_RESULT_CACHE.STATUS
   RETURN VARCHAR2;

戻り値

次のいずれかの値です。

  • STATUS_DISA: キャッシュは利用できません。

  • STATUS_ENAB: キャッシュは利用できません。

  • STATUS_BYPS: キャッシュは一時的に利用できませんでした。

  • STATUS_SYNC: キャッシュは利用できますが、Oracle RACノードと同期化されます。