再編成の必要性を確認するには
提供:DB2逆引きWiki
【DB2逆引きリファレンス目次】 【DB2逆引きリファレンス目次#保守作業編】 【DB2逆引きリファレンス目次#データの再編成】
目次 |
前提
- データベース接続が必要
- 以下のいずれかが必要: SYSADM権限, DBADM権限, 再編成する表に対するCONTROL特権
解説
表の再編成の必要性を確認するには、CLPのREORGCHKコマンドを用います。
REORGCHK [CURRENT STATISTICS] [ 再編成対象指定 ]
- CURRENT STATISTICS
- 再編成が必要かどうかを現在の統計情報に基づいてチェックします。このオプションを指定しない場合、統計情報の更新を行った上で再編成が必要かどうかをチェックします。
- 再編成対象指定
-
再編成が必要かどうかをチェックする対象を以下の形式のいずれかで指定します。
- ON TABLE USER
- 接続しているユーザーが所有している表をチェックします。
- ON SCHEMA スキーマ名
- 指定したスキーマに含まれるすべての表をチェックします。
- ON TABLE スキーマ名.表名
- 指定した表をチェックします。
- ON TABLE SYSTEM
- システムの表をチェックします。
- ON TABLE ALL
- すべてのユーザーおよびシステムの表をチェックします。
| 項目 | 適正な範囲 |
|---|---|
| F1 | 5 以下 |
| F2 | 70 以上 |
| F3 | 80 以上 |
表6-2-1: 表統計の項目
各項目が適正な範囲内に収まっているかどうかは、REORGの項目に要約されています。 この項目は3桁の文字列になっており、各桁がF1, F2, F3の状態に対応しています。 F1, F2, F3すべて適正な範囲内にあればREORGの項目は'---'という表示になり、いずれか範囲外の値があれば対応する桁の文字が'*'になります。 また、REORGCHKを実行すると索引についてF4, F5, F6, F7, F8の索引統計が計算されます。 これらの値は表6-2-2に示すような範囲内である必要があります。
| 項目 | 適正な範囲 |
|---|---|
| F4 | 80以上 |
| F5 | 50以上 |
| F6 | 100以下 |
| F7 | 20以下 |
表6-2-2: 索引統計の項目
索引統計についても、各項目が適正な範囲内に収まっているかどうかがREORGの項目に要約されています。 この項目は5桁の文字列になっており、各桁がF4, F5, F6, F7, F8の状態に対応しています。 F4, F5, F6, F7, F8すべて適正な範囲内にあればREORGの項目は'-----'という表示になり、いずれか範囲外の値があれば対応する桁の文字が'*'になります。
使用例
スキーマ(ここではdb2inst1)に含まれる表および索引について再編成が必要かどうかをチェックする例。
db2 ==> REORGCHK ON SCHEMA db2inst1↓ RUNSTATS 中.... ・ ・ (省略) ・ ・ SCHEMA NAME CARD OV NP FP ACTBLK TSIZE F1 F2 F3 REORG ---------------------------------------------------------------------------------------- DB2INST1 EMP_RESUME 8 0 1 1 - 984 0 - 100 --- DB2INST1 EMPLOYEE 32 0 2 2 - 2784 0 68 100 -*- DB2INST1 IN_TRAY - - - - - - - - - --- ・ ・ (省略) ・ ・ SCHEMA NAME CARD LEAF ELEAF LVLS ISIZE NDEL KEYS F4 F5 F6 F7 F8 REORG ------------------------------------------------------------------------------------------------- 表: DB2INST1.EMPLOYEE DB2INST1 INDEX1 8 1 0 1 14 0 8 100 - - 0 0 ---*- ・ ・ (省略)
出力結果を見ると、表EMPLOYEEおよび索引INDEX1について再編成が必要なことがわかります。