データベースでの統計を計算し、表が再編成される必要があるか判別します。
効力範囲
このコマンドは、db2nodes.cfg ファイル中の任意のノードから発行できます。 これを使用して、カタログ中の表および索引統計を更新できます。
許可
以下のどれかが必要です。
必須接続
データベース
コマンド構文
>>-REORGCHK----+----------------------------+-------------------> | .-UPDATE--. | '--+-CURRENT-+---STATISTICS--' >-----+---------------------------+---------------------------->< | .-USER-------. | '-ON TABLE--+-SYSTEM-----+--' +-ALL--------+ '-table-name-'
コマンド・パラメーター
REORGCHK を発行したノードに表区画が存在する場合、 このノードで RUNSTATS を実行します。 このノードに表区画が存在しない場合、 その要求は表の区画を保留しているノード・グループ中の最初のノードに送信されます。 次にそのノードで RUNSTATS を実行します。
注: | 型既定表の場合、指定するテーブル名は階層のルート表の名前でなければなりません。 |
例
以下に示すのは、次のコマンドの出力例です。
db2 reorgchk update statistics on table system
SAMPLE データベースに対して実行すると、
Doing RUNSTATS .... Table statistics: F1: 100*OVERFLOW/CARD < 5 F2: 100*TSIZE / ((FPAGES-1) * (TABLEPAGESIZE-76)) > 70 F3: 100*NPAGES/FPAGES > 80 CREATOR NAME CARD OV NP FP TSIZE F1 F2 F3 REORG ------------------------------------------------------------------------------- SYSIBM SYSCHECKS - - - - - - - - --- SYSIBM SYSCOLAUTH - - - - - - - - --- SYSIBM SYSCOLCHECKS - - - - - - - - --- SYSIBM SYSCOLDIST - - - - - - - - --- SYSIBM SYSCOLUMNS 735 0 25 25 92610 0 95 100 --- SYSIBM SYSCONSTDEP - - - - - - - - --- SYSIBM SYSDATATYPES 13 0 1 1 1027 0 - 100 --- SYSIBM SYSDBAUTH 3 0 1 1 90 0 - 100 --- SYSIBM SYSEVENTMONITORS - - - - - - - - --- SYSIBM SYSEVENTS - - - - - - - - --- SYSIBM SYSFUNCPARMS 254 0 6 6 21590 0 100 100 --- SYSIBM SYSFUNCTIONS 104 0 8 8 728 0 2 100 -*- SYSIBM SYSINDEXAUTH 2 0 1 1 112 0 - 100 --- SYSIBM SYSINDEXES 57 17 3 5 9063 29 56 60 *** SYSIBM SYSKEYCOLUSE 4 0 1 1 268 0 - 100 --- SYSIBM SYSPLAN 22 0 2 2 154 0 3 100 -*- SYSIBM SYSPLANAUTH 41 0 1 1 1804 0 - 100 --- SYSIBM SYSPLANDEP - - - - - - - - --- SYSIBM SYSRELS - - - - - - - - --- SYSIBM SYSSECTION 4 0 1 1 260 0 - 100 --- SYSIBM SYSSTMT 4 0 1 1 268 0 - 100 --- SYSIBM SYSTABAUTH 68 0 2 2 3944 0 98 100 --- SYSIBM SYSTABCONST 2 0 1 1 132 0 - 100 --- SYSIBM SYSTABLES 69 0 6 6 483 0 2 100 -*- SYSIBM SYSTABLESPACES 3 0 1 1 225 0 - 100 --- SYSIBM SYSTRIGDEP - - - - - - - - --- SYSIBM SYSTRIGGERS - - - - - - - - --- SYSIBM SYSVIEWDEP 42 0 1 1 2646 0 - 100 --- SYSIBM SYSVIEWS 32 0 5 5 3168 0 19 100 -*-
Index statistics: F4: CLUSTERRATIO or normalized CLUSTERFACTOR > 80 F5: 100*(KEYS*(ISIZE+8)+(CARD-KEYS)*4) / (NLEAF*INDEXPAGESIZE) > 50 F6: (100-PCTFREE)*(INDEXPAGESIZE-96)/(ISIZE+12)**(NLEVELS-2))*(INDEXPAGESIZE-96)/ (KEYS*(ISIZE+8)+(CARD-KEYS)*4) < 100 CREATOR NAME CARD LEAF LVLS ISIZE KEYS F4 F5 F6 REORG ------------------------------------------------------------------------------- Table: SYSIBM.SYSCHECKS SYSIBM IBM37 - - - - - - - - --- Table: SYSIBM.SYSCOLAUTH SYSIBM IBM42 - - - - - - - - --- SYSIBM IBM43 - - - - - - - - --- Table: SYSIBM.SYSCOLCHECKS SYSIBM IBM38 - - - - - - - - --- SYSIBM IBM39 - - - - - - - - --- Table: SYSIBM.SYSCOLDIST SYSIBM IBM46 - - - - - - - - --- Table: SYSIBM.SYSCOLUMNS SYSIBM IBM01 735 12 2 33 735 97 64 11 --- SYSIBM IBM24 735 1 1 20 10 85 - - --- Table: SYSIBM.SYSCONSTDEP SYSIBM IBM44 - - - - - - - - --- SYSIBM IBM45 - - - - - - - - --- Table: SYSIBM.SYSDATATYPES SYSIBM IBM40 13 1 1 20 13 100 - - --- SYSIBM IBM41 13 1 1 2 13 100 - - --- Table: SYSIBM.SYSDBAUTH SYSIBM IBM12 3 1 1 17 3 100 - - --- Table: SYSIBM.SYSEVENTMONITORS SYSIBM IBM47 - - - - - - - - --- Table: SYSIBM.SYSEVENTS SYSIBM IBM48 - - - - - - - - --- Table: SYSIBM.SYSFUNCPARMS SYSIBM IBM31 254 2 2 30 104 100 58 77 --- SYSIBM IBM32 254 3 2 51 154 96 79 37 --- SYSIBM IBM33 254 1 1 6 1 100 - - --- Table: SYSIBM.SYSFUNCTIONS SYSIBM IBM25 104 1 1 30 104 100 - - --- SYSIBM IBM26 104 1 1 27 104 86 - - --- SYSIBM IBM27 104 1 1 18 50 86 - - --- SYSIBM IBM28 104 1 1 16 2 99 - - --- SYSIBM IBM29 104 1 1 4 104 100 - - --- SYSIBM IBM30 104 2 2 53 104 86 79 56 --- Table: SYSIBM.SYSINDEXAUTH SYSIBM IBM17 2 1 1 47 2 100 - - --- SYSIBM IBM18 2 1 1 30 2 100 - - --- Table: SYSIBM.SYSINDEXES SYSIBM IBM02 57 1 1 17 57 100 - - --- SYSIBM IBM03 57 1 1 25 57 100 - - --- Table: SYSIBM.SYSKEYCOLUSE SYSIBM IBM35 4 1 1 57 4 100 - - --- SYSIBM IBM36 4 1 1 44 2 100 - - --- Table: SYSIBM.SYSPLAN SYSIBM IBM07 22 1 1 16 22 100 - - --- SYSIBM IBM19 22 1 1 8 1 100 - - --- Table: SYSIBM.SYSPLANAUTH SYSIBM IBM13 41 1 1 33 41 100 - - --- SYSIBM IBM14 41 1 1 16 22 100 - - --- Table: SYSIBM.SYSPLANDEP SYSIBM IBM08 - - - - - - - - --- SYSIBM IBM09 - - - - - - - - --- Table: SYSIBM.SYSRELS SYSIBM IBM20 - - - - - - - - --- Table: SYSIBM.SYSSECTION SYSIBM IBM10 4 1 1 20 4 100 - - --- Table: SYSIBM.SYSSTMT SYSIBM IBM11 4 1 1 20 4 100 - - --- Table: SYSIBM.SYSTABAUTH SYSIBM IBM15 68 1 1 38 68 100 - - --- SYSIBM IBM16 68 1 1 21 68 100 - - --- Table: SYSIBM.SYSTABCONST SYSIBM IBM34 2 1 1 44 2 100 - - --- Table: SYSIBM.SYSTABLES SYSIBM IBM00 69 1 1 21 69 95 - - --- SYSIBM IBM21 69 1 1 12 3 100 - - --- SYSIBM IBM22 69 1 1 6 1 100 - - --- SYSIBM IBM23 69 1 1 6 1 100 - - --- Table: SYSIBM.SYSTABLESPACES SYSIBM IBM49 3 1 1 14 3 100 - - --- SYSIBM IBM50 3 1 1 8 1 100 - - --- Table: SYSIBM.SYSTRIGDEP SYSIBM IBM51 - - - - - - - - --- SYSIBM IBM52 - - - - - - - - --- Table: SYSIBM.SYSTRIGGERS SYSIBM IBM53 - - - - - - - - --- SYSIBM IBM54 - - - - - - - - --- Table: SYSIBM.SYSVIEWDEP SYSIBM IBM05 42 1 1 42 42 100 - - --- SYSIBM IBM06 42 1 1 20 32 100 - - --- Table: SYSIBM.SYSVIEWS SYSIBM IBM04 32 1 1 20 32 100 - - --- ------------------------------------------------------------------------------- CLUSTERRATIO or normalized CLUSTERFACTOR (F4) will indicate REORG is necessary for indexes that are not in the same sequence as the base table. When multiple indexes are defined on a table, one or more indexes may be flagged as needing REORG. Specify the most important index for REORG sequencing.
表統計の用語 (式 1〜3) の意味は以下のとおりです。
表の再編成は、その計算結果が式によって設定された範囲を超える場合に、提案されます。
たとえば、 --- は、F1、F2、および F3 の式の結果がその式の設定範囲内であるために、 再編成が提案される表はないことを示しています。 表記 *-* は、F2 の結果がその設定範囲内であっても、 F1 と F3 の結果が表の再編成を提案していることを示しています。 表記 *-- は、F1 の式のみが、その範囲を超えていることを示しています。
注: | 表名は 30 文字で切り捨てられ、 31 列目の ">" 記号が表名の切り捨て位置を表します。 |
表の再編成は、その計算結果が式によって設定された範囲を超える場合に、提案されます。
使用上の注意
このコマンドは、宣言一時表の統計情報は表示しません。
REORGCHK は、6 つの異なる公式から得た統計を計算し、 表の再編成によってパフォーマンスが低下するか、または改善できるのかを判別します。
考慮事項: ヌルの表 (TSIZE=0) が再編成を必要としている場合には、 これらの統計を参考にせず、次の規準を当てはめてください。つまり、 TSIZE=0 で FPAGE>0 の場合は、表の再編成が必要です。 TSIZE=0 で FPAGE=0 の場合は、再編成は必要ありません。
REORGCHK は、次の式を使用して、行の物理的な場所および表のサイズを分析します。
100*OVERFLOW/CARD < 5
表のオーバーフロー行の合計数は、行の合計数の 5 パーセント以下でなければなりません。 オーバーフロー行は、行が更新されて、 新しい行のバイト数が古い行 (VARCHAR フィールド) のそれより大きくなる場合、 または列が既存の表に追加される場合に作成されます。
100*TSIZE / ((FPAGES-1) * (TABLEPAGESIZE-76)) > 70
バイトで表された表のサイズ (TSIZE) は、 表に割り当てられた合計スペースの 70 パーセントを超えていなければなりません (空きスペースを 30% 以下の値にします)。 表に割り当てられる合計スペースは、 表データが存在する表スペースのページ・サイズによって決まります (オーバーヘッド分の 76 バイトを差し引きます)。 割り当てられている最終ページは、通常埋められていないため、FPAGES から 1 を引きます。
100*NPAGES/FPAGES > 80
全く行を含まないページ数は、ページ合計数の 20 パーセントより少ない値にします (行が削除された後では、ページはヌルになります)。
REORGCHK は、次の式を使用して、表データに対する索引の関係を分析します。
CLUSTERRATIO or normalized CLUSTERFACTOR > 80
クラスター化索引比率は、80 パーセントより大きくします。 複数の索引が 1 つの表に定義される場合は、これらの索引のいくつかは、 低いクラスター比率を持っています (索引順序は、表の順序と同じではありません)。 これを避けることはできません。
表を再編成する際に、必ず最も重要な索引を指定してください。 そのクラスター比率は、通常、数の多い複写キーおよび数の多い項目を含む索引には最適ではありません。
100*(KEYS*(ISIZE+8)+(CARD-KEYS)*4) / (NLEAF*INDEXPAGESIZE) > 50
索引項目に予約されたスペースの 50% 以下はヌルでなければなりません (NLEAF>1 の場合のみ検査されます)。
(100-PCTFREE)*(INDEXPAGESIZE-96)/(ISIZE+12)**(NLEVELS-2))*(INDEXPAGESIZE-96)/ (KEYS*(ISIZE+8)+(CARD-KEYS)*4) < 100
索引項目の実際の数は、NLEVELS-1 索引ツリーが取り扱うことができる項目の数の 90% 以上 (または 100-PCTFREE) でなければなりません (NLEVELS>1 の場合のみ検査されます)。
注: | 多数の表で統計を実行すると、表が大きい場合には特に時間がかかります。 |
以下も参照