- 予約領域の確認方法
- 現在の設定: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