Oracle無駄をなくしSQLを高速化する方法

 業務アプリケーションでログインボタンを押してから業務メニューが出るまでの時間が遅いことがあります。

 原因は入力したユーザIDから各種マスタから権限情報を参照可能なメニュー情報を取得し画面生成をしています。これらを高速化するには各種マスタのアクセス時間を最小にする必要があります。最小にするには各種マスタを常にキャッシュメモリ上に載せておけば良いのです。

1.KEEPキャッシュサイズの設定

 ALTER SYSTEM SET DB_KEEP_CACHE_SIZE = 10G;
 ※常に載せておきたいテーブルのサイズ合計に合わせてください。


2.テーブル属性の変更

 ALTER TABLE TABLE1 STORAGE(BUFFER_POOL KEEP);


3.データをキャッシュメモリに展開させる

 ※システム開始直後にプログラムで実行することをおすすめします。
 SELECT /*+FULL*/ * FROM TABLE1;