バッファキャッシュは通常のDEFAULTの他に優先してキャッシュするための領域として
KEEPバッファキャッシュ領域がある。
よく使用するテーブル・インデックスについてはこちらに載せておくとレスポンスが向上する。
※キャッシュ領域が別というだけでメモリが十分でなければキャッシュから追い出される
⇒サイズは初期化パラメータDB_KEEP_CACHE_SIZEで指定
テーブルのキャッシュの種類を確認するSQL
SELECT TABLE_NAME , BUFFFER_POOL FROM DBA_TABLES WHERE TABLE_NAME = [テーブル名]
変更する書式
ALTER TABLE [テーブル名] STORAGE(BUFFER_POOL [DEFAULT/KEEP/RECYCLE])
以下のようにインデックスに適用することも可能
ALTER INDEX HOGE_PK STORAGE (BUFFER_POOL KEEP); ALTER INDEX HOGE_PK STORAGE (BUFFER_POOL DEFAULT);
http://output-place.blogspot.jp/2013/08/oraclekeep-pool.html
KEEPキャッシュに乗せるには以下のようにフルスキャンのヒント句でSQL実行する必要がある
SELECT /*+ FULL(EMP) */ COUNT(*) FROM HOGE;
動作確認環境:Oracle 10g