ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
ストアド・プログラムをメモリ上に固定する(DBMS_SHARED_POOL.KEEP)
スポンサード リンク

ユーティリティ「DBMS_SHARED_POOL.KEEP」を使用することで、ストアド・プログラムをメモリ上に固定できます。

メモリ上に固定すると、ディスクから読み込む必要がなくなるので、その分、パフォーマンスが向上します。

ストアド・プログラムは初回実行時に、メモリ上に固定されますが、メモリが不足すると排除されてしまいます。

その為、使用頻度が高いストアド・プログラムをメモリ上で固定するといいでしょう。

 DBMS_SHARED_POOL.KEEP( ストアド・プログラム名 , タイプ )
DBMS_SHARED_POOLパッケージは、デフォルトでは使用できないので、SYSユーザーで、以下のファイルを実行してインストールします。

 %ORACLE_HOME%\rdbms\admin\dbmspool.sql

ストアド・プログラム名にはメモリ上で固定する名称を指定します。

タイプには以下のオプションを指定します。
  P : プロシージャ、ファンクション(デフォルト)
  R : トリガー


例1) ストアド・ファンクション「TEST.GET_DEPT」をメモリに固定します。

SQL> execute dbms_shared_pool.keep('test.get_dept','P');

PL/SQLプロシージャが正常に完了しました。

SQL> select owner,name,type,sharable_mem,loads,kept
  2 from v$db_object_cache
  3 where owner = 'TEST' and TYPE = 'FUNCTION';

OWNER  NAME   TYPE      SHARABLE_MEM  LOADS   KEEP
------- --------- ---------- --------------- -------- ------
TEST   GET_DEPT FUNCTION  16733         2      YES


 動的ディクショナリビュー「v$db_object_cache」で、メモリに固定された状況を確認できます。
 列「KEEP」が「YES」となっていれば固定された状態になります。


スポンサード リンク

ストアド・プログラムをメモリ上に固定する(DBMS_SHARED_POOL.KEEP)
メモリ上に固定したストアド・プログラムの解放(DBMS_SHARED_POOL.UNKEEP)
特定のストアド・プログラムをネイティブ・コンパイルする
全てのストアド・プログラムをネイティブに再コンパイルする
ソース・コードの最適化(PLSQL_OPTIMIZE_LEVEL)

PL/SQL へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ