ORACLEバッチ処理SQLチューニング方法3つ

 夜間バッチ処理のチューニングがなかなか上手くいかない場合には今回記載している内容を試してみてください。

>>SQLが突然遅くなる原因と対応方法

>>ORACLEチューニング関連記事の一覧

1.パラレル実行(多重実行)

 データベースサーバのリソースに余裕がある場合はこれが一番簡単です。
・セッション単位でパラレル実行する方法

ALTER SESSION FORCE PARALLEL DDL PARALLEL 4;



※データ抽出に時間が掛かっている場合

ALTER SESSION FORCE PARALLEL QUERY PARALLEL 4;



・SQL単位でパラレル実行する方法

INSERT INTO TABLE1 SELECT /*+PARALLEL(4)*/ * FROM TABLE1;




2.セッション単位に割り当てるメモリサイズの拡張

 データのソートやハッシュジョイン結合は通常メモリ上で処理されます。しかし大量データを扱う場合、メモリ内に収まらない場合一時表領域を利用して処理されます。

 一時表領域は通常のテーブルと同じディスクになりますので、メモリ>>ディスクとなり急激に処理時間が遅くなる場合があります。このような場合にはPGAサイズを変更するか、以下のようにセッション単位にメモリサイズを拡張してみてください。

ALTER SESSION SET WORKAREA_SIZE_POLICY = MANUAL;
ALTER SESSION SET SORT_AREA_SIZE = 2147483647;




3.表領域のブロックサイズの変更によるI/O効率の向上

 ORACLEはブロックと呼ばれる単位ごとにデータの読み込みを行います。そしてこのブロックに複数の行データが格納されています。ORACLEのブロックのサイズのデフォルト値は8KBとなっています。

 通常はこれで十分ですが、16KBや32KBとすることで大量データの読み取り速度を向上させることができます。しかしブロックサイズは基本的にはデータベース単位に決まっており変更するにはデータベースの再作成、もしくは表領域単位に再作成が必要です。

 さらに表領域単位にブロックサイズを作り直す場合は、作り直すブロックサイズに対応できるようにメモリのサイズ設定が必要です。

・キャッシュメモリサイズの設定

ALTER SYSTEM SET DB_16K_CACHE_SIZE = 10 SCOPE=BOTH SID=’*’
※32KBの場合
ALTER SYSTEM SET DB_32K_CACHE_SIZE = 10 SCOPE=BOTH SID=’*’



>>おすすめのORACLE参考書まとめ




★★★ブログ村ランキングに1票お願いします!もちろん無料です(笑)★★★
ブログランキング・にほんブログ村へ

【SQLでお困りの方にオススメ】
■SQLが遅くなる原因
・SQLが突然遅くなる原因と対応方法
・OracleSQLのレスポンスが遅い原因3つ
・JOINを使って表結合するとSQLが遅い!?
・SQLがパラレル実行されない原因

■SQLチューニングの基礎知識
・ORACLE SQLのヒントとは
・ORACLEのオプティマイザと実行計画について
・ORACLEのテーブルやインデックスの「統計情報」とは

■SQLチューニングの方法
・SELECT文のSQLチューニング方法
・OracleExadataでのSQLチューニング方法
・SLECT文が遅いときのインデックス作成によるチューニング方法
・INSERT文のSQLチューニング方法
・Update文が遅いときのチューニング方法
・Delete文が遅いときのチューニング方法
・IN句をEXISTS句に置き換えするチューニング方法
・OR句の置き換えによるチューニング方法
・IN句の置き換えによるチューニング方法
・テーブルアクセスフルスキャンを無くしてチューニングする方法
・SQLでGROUP BYが遅いときのチューニング方法
・SQLのソート処理が遅い場合のチューニング方法

■表や索引の断片化対策
・プロが教えるORACLEの表や索引の断片化解消の見積り方法
・ORACLE表の断片化を解消する3つの方法

■SQLのチューニングの補足情報
・ORACLE SQLヒントの書き方
・SQLに複数のヒントの書き方
・OracleSQLに実装すべき3つのSQLヒント
・ORACLE表の統計情報取得日の確認方法
・「統計情報が古い」とはどういうことか
・ORACLE表の統計情報の取得方法

【自己学習したい方にオススメ】
・自宅で勉強用にORACLEデータベースを無償でダウンロードし構築する方法
・OracleMasterGold12cに一ヵ月で合格した勉強方法
・OracleMasterExpertパフォーマンス&チューニングに一ヵ月で合格した勉強方法
・手に職がない人はIT業界へ、オススメ資格と勉強方法
・OracleDBのチューニング勉強方法
・OraclePL/SQL勉強方法