今回はRUNSTATSとREORGについて基本的なことを、わかりやすくシンプルに紹介します。
当記事は以下IBMサイトの内容を引用しつつ、シンプルに記載したものになります。
以下IBM参考サイトのリンクになります。
IBM:パフォーマンス維持のための運用 (REORG と RUNSTATS) 編
RUNSTATSとは 見出しへのリンク
- 統計情報の収集のことです
簡単に言うと、SQLは実行されると地図を見てどの道が一番効率よく結果を得られるかなと宝探しをする。その地図が「システム・カタログ」宝がSQL実行結果になります。
そのシステム・カタログに格納されている情報が「統計情報」である。
その統計情報を収集してシステム・カタログに格納するユーティリティが「RUNSTATS」になります。
RUNSTATSの効果 見出しへのリンク
- RUNSTATSを定期的に実行することで最新の統計情報を把握することができ、適切なアクセス・プランを構築することができる。
RUNSTATSの情報内容 見出しへのリンク
統計情報にはレコード件数、レコードの種類や頻度、表や索引の使用ページ数、オーバーフロー・レコード (後述) の件数、空きページ数、など多様な項目が含まれます。
REORGとは 見出しへのリンク
表は更新、追加、削除等で崩れ、デフラグメンテーションが発生します。ページの中に空き容量がないようにレコードを詰め直すユーティリティです。
崩れてずれた箇所をきれいに整えたのです。
REORGの効果 見出しへのリンク
- 無駄な領域を詰め直すことで、開放して表や索引のサイズを縮小できる。
サイズが少なくなることでパフォーマンス向上。 読み取るレコードが連続したページに配置されパフォーマンス向上。
補足 見出しへのリンク
- まとまったページ数の照会に有効。
- 1件のみデータ取得の場合は効果薄い。
RUNSTATSとREORGの運用手順 見出しへのリンク
- 地図を定期的に更新「RUNSTATSの定期的な実行」
- テーブル整理が必要か~?確認する「REORGCHKで再編成の必要性を検査」
- 整理が必要なテーブルに、詰め直し実行「再編成が推奨される表や索引へREORGを実行」
- 詰め直した後に地図更新「REORGされた表にRUNSTATSを実行」