共有プールのチューニング(3) --- 予約領域のチューニング

  • 予約領域の確認方法
    • 現在の設定:SHARED_POOL_RESERVED_SIZE初期化パラメータ
    • デフォルトはSHARED_POOL_SIZEの5%
    • 十分であるかどうかはV$SHARED_POOL_RESERVEDビューで確認
    • チューニングの目標はrequest_missesとrequest_failuresが0(または増えないこと)。1以上であればSHARED_POOL_SIZEとSHARED_POOL_RESERVED_SIZEを調整する。
SQL> select free_space,request_misses,request_failures from v$shared_pool_reserved ;

FREE_SPACE REQUEST_MISSES REQUEST_FAILURES
---------- -------------- ----------------
   6044400              0                0
  • 共有プールへのオブジェクトの固定
    • 固定のタイミングはDB起動直後
    • 固定はdbms_shared_pool.keep('XXXXXX')を実行
    • 固定解除はdbms_shared_pool.unkeep
    • DBMS_SHARED_POOLパッケージを使用するには、dbmspool.sqlスクリプトを実行しておく必要がある。
    • サイズが大きくて再利用性が高いオブジェクトを固定する
    • STANDARDパッケージは固定するのを推奨
    • 固定済みであるかどうかは、V$DB_OBJECT_CACHEビューで確認
SQL> @?/rdbms/admin/dbmspool.sql

パッケージが作成されました。
権限付与が成功しました。
ビューが作成されました。
パッケージ本体が作成されました。

SQL>  exec dbms_shared_pool.keep('STANDARD') ;

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

SQL> select owner,name,type,loads,executions,locks,pins,kept
     from v$db_object_cache where name='STANDARD';

OWNER NAME     TYPE          LOADS EXECUTIONS  LOCKS  PINS KEPT
----- -------- ------------ ------ ---------- ------ ----- ----
SYS   STANDARD PACKAGE           1          0      0     0 YES
SYS   STANDARD PACKAGE BODY      1      23019      0     0 YES