【ORACLE】アクセスの無駄をなくしてSQLを高速化する方法


ここではORACLEデータベースのSQLで、アクセスの無駄をなくしてSQLを高速化する方法を紹介しています。

SQLの実行計画の見方や確認方法については↓で紹介していますので参考にしてください。
>>【ORACLE】SQLの実行計画の見方
>>【ORACLE】SQLの実行計画を取得する方法

アクセスの無駄をなくして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;

最後に

最後までお読みいただきありがとうございます。

SQLのチューニング方法は↓で紹介していますので参考にしてください。
>>SELECT文のSQLチューニング方法まとめ