【DB2】RUNSTATSとREORGとは 概要

今回は RUNSTATS と REORG について基本的なことを、わかりやすくシンプルに紹介します。

当記事は以下 IBM サイトの内容を引用しつつ、シンプルに記載したものになります。

 

以下 IBM 参考サイトリンクになります。
IBM:パフォーマンス維持のための運用 (REORG と RUNSTATS) 編

RUNSTATS とは

  • 統計情報の収集のことです

簡単に言うと、SQL は実行されると、地図を見て、どの道が一番効率よく結果を得られるかなと宝探しをする。
その地図が「システム・カタログ」
宝が SQL 実行結果になります。

そのシステム・カタログに格納されている情報が「統計情報」である。

その統計情報を収集して、システム・カタログに格納するユーティリティが「RUNSTATS」になります。

RUNSTATS の効果

  • RUNSTATS を定期的に実行することで、最新の統計情報を把握することができ、適切なアクセス・プランを構築することができる。

RUNSTATS の情報内容

統計情報にはレコード件数、レコードの種類や頻度、表や索引の使用ページ数、オーバーフロー・レコード (後述) の件数、空きページ数、など多様な項目が含まれます。

REORG とは

表は更新、追加、削除等で崩れ、デフラグメンテーションが発生します。

ページの中に空き容量がないようにレコードを詰め直すユーティリティです。 崩れてずれた箇所をきれいに整えたのです。

REORG の効果

  • 無駄な領域を詰め直すことで、開放して表や索引のサイズを縮小できる。

サイズが少なくなることでパフォーマンス向上。

読み取るレコードが連続したページに配置されパフォーマンス向上。

補足

  • まとまったページ数の照会に有効。
  • 1 件のみデータ取得の場合は効果薄い。

RUNSTATS と REORG の運用手順

  1. 地図を定期的に更新「RUNSTATS の定期的な実行」
  2. テーブル整理が必要か~?確認する「REORGCHK で再編成の必要性を検査」
  3. 整理が必要なテーブルに、詰め直し実行「再編成が推奨される表や索引へ REORG を実行」
  4. 詰め直した後に地図更新「REORG された表に RUNSTATS を実行」

 

comments powered by Disqus