繰り返し実行するマスタ系の参照SQLをチューニングする方法

ここでは、1日に何度も繰り返しSQLを実行し、参照するマスタ系テーブルへのSQLをチューニングする方法を紹介します。

もちろん、通常のSQLと同様に、SQLをチューニングする方法やインデックスを使う方法も効果的です。

>>SELECT文のSQLチューニング方法まとめ

>>SLECT文が遅いときのインデックス作成によるチューニング方法

上記のようなチューニングを行うことでより効率よくデータにアクセスし、レスポンスの改善が図れます。

ただ、繰り返し実行するのであれば、もっと速くする方法があります。
例えば、常にキャッシュに格納しておく方法です。

通常、SQLを実行して読み込んだデータは、バッファキャッシュ上に格納されます。
そして繰り返し呼び出されるものは、キャッシュ上に残ります。呼び出されないものはキャッシュから出ていきます。

ただ、実はテーブルのキャッシュ属性をKEEPに変えることで、常にキャッシュに格納させておくことが出来ます。
キャッシュ属性に変更する方法は次の通りです。

・テーブル属性の変更
ALTER TABLE tab1 BUFFER_POOL KEEP
※デフォルトに戻す場合は、ALTER TABLE tab1 BUFFER_POOL DEFAULT

テーブルの属性を変えるのと同時に、バッファキャッシュ領域内にKEEPバッファキャッシュ用の領域を確保しておく必要があります。次のようなSQLで領域を確保できます。

・KEEPバッファキャッシュの指定
alter system db_keep_cache_size 5G

こうすることで、例えば、オンライン開始前に、特定のテーブルをSELECTしておけば、オンライン開始直後から常にデータがキャッシュに格納されることになり、高速にマスタデータにアクセスすることが出来ます。

ただし、バッファキャッシュの領域を使うので、きちんとDBAと相談して決めて下さい。

それから、WEBサーバーやバッチサーバの他のキャッシュ機能が使える状況であれば、アプリの要件や環境に合わせて使いやすい方を使ってください。

Oracle SQLチューニング パフォーマンス改善と事前対策に役立つ (DB selection) [ 加藤祥平 ]

価格:2,808円
(2018/11/19 19:23時点)

繰り返し実行するマスタ系の参照SQLをチューニングする方法” に対して1件のコメントがあります。

この投稿はコメントできません。