DBMS_SHARED_POOLDBMS_SHARED_POOLパッケージは、共有プールへのアクセスを提供し、この共有プールは、カーソルとPL/SQLオブジェクトが格納されている共有メモリー領域です。DBMS_SHARED_POOLによって、共有プール内のオブジェクトのサイズを表示したり、メモリーの断片化を減らすためにオブジェクトを保存または非保存としてマークできます。この章では、次の項目について説明します。概要ここで提供されるプロシージャは、大規模なPL/SQLオブジェクトのロード時に役立ちます。大規模なPL/SQLオブジェクトのロード時には、大量の小規模オブジェクトを共有プールから期限切れとして削除して空き領域を用意する必要があるため(メモリー断片化のため)、ユーザーの応答時間に影響を与えます。場合によっては、大規模なオブジェクトをロードするためのメモリーが不足している場合があります。DBMS_SHARED_POOLは、頻繁に実行するトリガーに対しても有効です。コンパイルしたトリガーを共有プールで頻繁に使用する表に保管できます。DBMS_SHARED_POOLは順序もサポートしています。順序番号は、順序が期限切れで共有プールから削除されると失われます。DBMS_SHARED_POOLは、共有プールに順序を保存し、順序番号の損失を防止するのに役立ちます。使用上の注意DBMS_SHARED_POOLを作成するには、DBMSPOOL.SQLスクリプトを実行します。DBMSPOOL.SQLの実行後には、自動的にPRVTPOOL.PLBスクリプトが実行されます。これらのスクリプトは、通常のデータベース作成の一環では実行されません。DBMS_SHARED_POOLパッケージのサブプログラムサブプログラム説明ABORTED_REQUEST_THRESHOLDプロシージャ共有プールについて、異常終了を要求するしきい値を設定します。KEEPプロシージャ共有プールにオブジェクトを保存します。MARKHOTプロシージャライブラリ・キャッシュ・オブジェクトをホット・オブジェクトとしてマーク付けします。PURGEプロシージャ名前付きオブジェクトまたはオブジェクトの指定したヒープをパージします。SIZESプロシージャ共有プールにあるオブジェクトで、指定サイズより大きいオブジェクトを表示します。UNKEEPプロシージャ指定オブジェクトを解放します。UNMARKHOTプロシージャライブラリ・キャッシュ・オブジェクトのホット・オブジェクトとしてのマークを解除します。ABORTED_REQUEST_THRESHOLDプロシージャこのプロシージャは、共有プールについて、異常終了を要求するしきい値を設定します。ABORTED_REQUEST_THRESHOLDプロシージャのパラメータパラメータ説明threshold_size共有プール内で確保解除されたメモリー(解放されたメモリーではない)を解放しないための要求サイズ(バイト単位)。threshold_sizeの範囲は5000から2GBまでです。例外しきい値が有効な範囲内にない場合は、例外が発生します。通常、要求が空きリストで満たされない場合、RDBMSは、LRUリストからオブジェクトを解放して要求を満たすことができるかを定期的にチェックし、メモリーを再要求しようとします。SHARED_POOL'とほぼ同等の内容を実行します。これは、システム上のすべてのユーザーに影響を与えるため、このプロシージャは、その影響をthresh_holdサイズを超える共有メモリーの断片検索に失敗した処理にローカライズします。このユーザーは、LRUリストを検索しなくても、'メモリー不足'エラーとなります。KEEPプロシージャこのプロシージャは、共有プールにオブジェクトを保存します。オブジェクトが一度共有プールに保存されると、期間切れ削除の対象となりません。このことは、頻繁に使用されるラージ・オブジェクトに役立つ場合があります。ラージ・オブジェクトを共有プールに配置する場合、十分な連続領域を作成するために複数のオブジェクトを削除する必要がある場合があります。KEEPプロシージャのパラメータパラメータ説明name保存するオブジェクトの名前。この識別子は、アドレスと、v$sqlareaビューのhash_value列を連結した値です。これは、SIZESプロシージャで表示されます。現在、TABLEとVIEWオブジェクトは保存できません。flag(オプション)このパラメータを指定しないと、パッケージは、最初のパラメータをパッケージ、プロシージャまたはファンクションの名前とみなして名前を解決します。入力内容がパッケージ、プロシージャまたはファンクションの名前であることを完全に指定するには、'P'または'p'を設定します。入力内容がタイプ名であることを指定するには、'T'または't'を設定します。入力内容がトリガー名であることを指定するには、'R'または'r'を設定します。入力内容が順序名であることを指定するには、'Q'または'q'を設定します。最初の引数がカーソル・アドレスとハッシュ値の場合は、パラメータに'P'、'p'、'Q'、'q'、'R'、'r'、'T'、't'を除く任意の文字を指定する必要があります。指定されたオブジェクトが見つからない場合は、例外が発生します。使用上の注意オブジェクトは2種類あります。名前で指定するPL/SQLオブジェクト、トリガー、順序およびタイプ2つの番号(共有プール内の位置を示す)で指定するSQLカーソル・オブジェクト次に例を示します。これは、SCOTTが所有するパッケージHISPACKAGEを保存します。PL/SQLオブジェクトの名前は、SQLのオブジェクトの命名規則に従っています(たとえば、デリミタ付き識別子やマルチバイトの名前などが可能です)。20348871','C')によって保存でき、0034CDFFはADDRESS、20348871はHASH_VALUEです。最初の8文字は16進数の完全なアドレスである必要があることに注意してください。MARKHOTプロシージャこのプロシージャは、ライブラリ・キャッシュ・オブジェクトをホット・オブジェクトとしてマーク付けします。MARKHOTプロシージャのパラメータパラメータ説明schemaオブジェクトが属するユーザー名またはスキーマ。objnameオブジェクト名。namespaceオブジェクトの検索範囲となるライブラリ・キャッシュ・ネームスペースを示す数。USER_OBJECTSやDBA_OBJECTSなどのビューは、ネームスペースを数値列として反映します。これは、OBJ$などのディクショナリ表のほとんどと同様です。RACインスタンスでオブジェクトをホットとしてマークします。hashオブジェクトの16バイトのハッシュ値。不適切な入力が原因で指定したオブジェクトを検出できない場合は例外が発生します。指定したオブジェクトを検出できない場合は例外が発生します(不正なネームスペースまたはハッシュ入力)。使用上の注意パッケージまたはタイプの仕様にホットまたは非ホットのマークが付いている場合は、対応するパッケージまたはタイプの本体に暗黙的にホットまたは非ホットのマークが付きます。PURGEプロシージャこのプロシージャは、名前付きオブジェクトまたはオブジェクトの指定したヒープをパージします。PURGEプロシージャのパラメータパラメータ説明nameパージするオブジェクトの名前。この識別子は、アドレスと、v$sqlareaビューのhash_value列を連結した値です。これは、SIZESプロシージャで表示されます。現在、TABLEとVIEWオブジェクトはパージできません。flag(オプション)このパラメータを指定しないと、パッケージは、最初のパラメータをパッケージ、プロシージャまたはファンクションの名前とみなして名前を解決します。入力内容がパッケージ、プロシージャまたはファンクションの名前であることを完全に指定するには、'P'または'p'を設定します。入力内容がタイプ名であることを指定するには、'T'または't'を設定します。入力内容がトリガー名であることを指定するには、'R'または'r'を設定します。入力内容が順序名であることを指定するには、'Q'または'q'を設定します。最初の引数がカーソル・アドレスとハッシュ値の場合は、パラメータに'P'、'p'、'Q'、'q'、'R'、'r'、'T'、't'を除く任意の文字を指定する必要があります。heapsパージするヒープ。このため、ヒープ=>65を指定します。1は、オブジェクト全体がパージされるヒープ0を意味します。schemaオブジェクトが属するユーザー名またはスキーマ。objnameパージするオブジェクトの名前。namespaceオブジェクトの検索範囲となるライブラリ・キャッシュ・ネームスペースを示す数。hashオブジェクトの16バイトのハッシュ値。指定したオブジェクトを検出できない場合は例外が発生します。永続的に保持するようにマークされているオブジェクトはパージできません。使用上の注意KEEPプロシージャでサポートされているすべてのオブジェクトに対してPURGEがサポートされています。SIZESプロシージャこのプロシージャは、shared_poolにあるオブジェクトで指定したサイズより大きいオブジェクトを表示します。オブジェクト名も表示され、KEEPまたはUNKEEPいずれかのコールへの引数として使用できます。SIZESプロシージャのパラメータパラメータ説明minsizeオブジェクトを表示するために、共有プール内で占有する必要があるサイズ(KB単位)。XXXXX'コマンドを発行すると、結果が表示されます。UNKEEPプロシージャこのプロシージャは、指定のオブジェクトを解放します。'P');注意:このプロシージャは、将来自動メカニズムが実装されて不要になった場合サポートされなくなる可能性があります。UNKEEPプロシージャのパラメータパラメータ説明name解放するオブジェクトの名前。KEEPプロシージャのnameパラメータの説明を参照してください。flagKEEPプロシージャのflagパラメータの説明を参照してください。指定したオブジェクトを検出できない場合は例外が発生します。UNMARKHOTプロシージャこのプロシージャは、ライブラリ・キャッシュ・オブジェクトのホット・オブジェクトとしてのマークを解除します。UNMARKHOTプロシージャのパラメータパラメータ説明schemaオブジェクトが属するユーザー名またはスキーマ。objnameオブジェクト名。namespaceオブジェクトの検索範囲となるライブラリ・キャッシュ・ネームスペースを示す数。RACインスタンスでオブジェクトのホットとしてのマークを解除します。hashオブジェクトの16バイトのハッシュ値。不適切な入力が原因で指定したオブジェクトを検出できない場合は例外が発生します。指定したオブジェクトを検出できない場合は例外が発生します(不正なネームスペース、ハッシュ入力または存在しないオブジェクト)。使用上の注意パッケージまたはタイプの仕様にホットまたは非ホットのマークが付いている場合は、対応するパッケージまたはタイプの本体に暗黙的にホットまたは非ホットのマークが付きます。