無駄をなくしてSQLを高速化する方法
業務アプリケーションでログインボタンを押してから業務メニューが出るまでの時間が遅いことがあります。
原因は入力したユーザIDから各種マスタから権限情報を参照可能なメニュー情報を取得し画面生成をしています。これらを高速化するには各種マスタのアクセス時間を最小にする必要があります。最小にするには各種マスタを常にキャッシュメモリ上に載せておけば良いのです。
ちなみに、ここではデータをKEEPキャッシュに格納する方法を紹介しています。実は、インデックスもKEEPキャッシュに格納することも可能です。インデックスを格納するかどうかについては、「KEEPバッファにインデックス(INDEX)を置くべきかどうか」で少し触れていますので参考にしてください。
1.KEEPキャッシュサイズの設定
ALTER SYSTEM SET DB_KEEP_CACHE_SIZE = 10G;
※常に載せておきたいテーブルのサイズ合計に合わせてください。
※常に載せておきたいテーブルのサイズ合計に合わせてください。
2.テーブル属性の変更
ALTER TABLE TABLE1 STORAGE(BUFFER_POOL KEEP);
3.データをキャッシュメモリに展開させる
※システム開始直後にプログラムで実行することをおすすめします。
SELECT /*+FULL*/ * FROM TABLE1;
SELECT /*+FULL*/ * FROM TABLE1;
![]() |
Oracle SQLチューニング パフォーマンス改善と事前対策に役立つ (DB selection) [ 加藤祥平 ] 価格:2,808円 |
“無駄をなくしてSQLを高速化する方法” に対して1件のコメントがあります。
この投稿はコメントできません。