RUNSTATS INDEX の構文とオプション
RUNSTATS INDEX ユーティリティー制御ステートメントは、RUNSTATS ユーティリティー・ジョブによって実行される操作を定義します。
制御ステートメントは、ISPF/PDF 編集機能を使って作成することができます。 制御ステートメントを作成した後、それを順次データ・セットまたは区分データ・セットに保管します。 ジョブを実行するための JCL を作成するときは、SYSIN DD ステートメントを使用して、ユーティリティー 制御ステートメントを格納するデータ・セットの名前を指定してください。
以下の構文および説明は、 RUNSTATS INDEX 制御ステートメントに適用されます。 INDEX キーワードの使用を含む、RUNSTATS TABLESPACE 制御ステートメントの構文とオプションについては、 RUNSTATS TABLESPACE 構文とオプションを参照してください。
RUNSTATS INDEX 構文図
- 1 REGISTER NOも受け付けますが、 Db2DSNU124I を発行し、RUNSTATS INDEXにはREGISTER YESを使用します。
- 2 STATISTICS HISTORYサブシステム・パラメータを変更することで、デフォルトの履歴値を変更することができます。 デフォルトでは、この値は NONE です。
- 3 KEYCARDオプションは非推奨です。 KEYCARD の機能は、RUNSTATS INDEX ユーティリティーの通常実行に組み込まれるようになったため、無効にはできません。
- 4 COUNTキーワードが指定されていない場合、ユーティリティは自動的にカウント値を決定し、最も頻繁に発生する値を収集します。
RUNSTATS INDEX オプションの説明
- INDEX
- 統計が収集される索引を指定します。 列統計の収集は、索引の最初の列について行われます。 すべての索引は、同じ表スペースに関連付けられている必要があります。
- LIST リスト定義名
- 前に定義された LISTDEF リスト名の名前を指定し
ます。 それぞれの RUNSTATS 制御ステートメントごとに、1 つの LIST キーワードを指定することができます。 LIST を RUNSTATS INDEX と一緒に指定する場合は、リストに含まれるのは索引スペースのみ
です。 キーワードのある LIST を INDEXから指定しないでください ...(index-name) 仕様;ただし、相関統計仕様の場合は除きます。
RUNSTATS は、関連した表スペース別に索引をグループ化し ます。 RUNSTATS INDEX は、1 つの表スペースにつき 1 回呼び出されます。 LIST の内容を妥当性検査するためには、INDEX キーワードが必要です。
- (index-name, …)
- 統計が収集される索引を指定します。 索引名のリストを指定することができます。 指定する索引が複数の場合は、それぞれの名前をコンマで
区切ります。 名前にブランクが含まれている場合は、索引名を引用符で囲みます。
- PART 整数
- 統計の収集が行われる索引パーティションを示します。
整数は分割数です。
- (ALL)
- 指定した表スペースのすべての表に定義されているすべての索引について、 統計を収集することを指定します。
- TABLESPACE
- 索引の統計の収集が行われる表スペース (およびオプションで、それが属するデータベース) を示します。
- database-name
- 表スペースが属するデータベースの名前。
デフォルト値は DSNDB04です。
- テーブルスペース名
- 索引の統計の収集が行われる表スペースの名前を示します。
- KEYCARD
- RUNSTATS INDEX 制御ステートメントの KEYCARD オプション
は非推奨であり、索引のキー列に含まれる値の統計を収集する場合に指定する
必要はなくなりました。
XML NODEID 索引または XML 値索引を処理する場合を除き、RUNSTATS ユーティリティーでは、指定された索引の 1 から n 個までのキー列の全組み合わせの中で、異なる値をすべて自動的に収集します。ここで、n は、索引内の列の数です。 例えば、 A、 B、および C の 3 つの列に索引が定義されているとします。 RUNSTATS は、列 A、列セット A および B、および列セット A、 B、および C について、カーディナリティー統計を収集します。 KEYCARD が非推奨になったことに伴い、 この機能を使用不可にすることはできなくなりました。
RUNSTATS ユーティリティー では、KEYCARD オプションの指定が容認されます。 このユーティリティーでは、 INDEX を指定するときに制御ステートメントに KEYCARD オプションが含まれて いても、除外されていても、メッセージを出しません。
- FREQVAL
- INDEX オプションとともに指定した場合、頻度統計の収集を制御し
ます。 INDEXとともに FREQVAL を指定する場合は、このキーワードの後に NUMCOLS キーワードを続けなければなりません。
RUNSTATS INDEXは、XML NODEIDインデックスを処理する際に、FREQVAL MOST/LEAST/BOTHを無視します。
- NUMCOLS 整数
- 頻繁に発生する値を RUNSTATS が収集する、索引の列の数を示し
ます。 integer は、1 から索引の列数までの数値です。 索引のある列数よりも大きい数を指定すると、RUNSTATS は索引の列数を使用します。
例えば、 A、 B、および C の 3 つの列に索引が定義されているとします。 NUMCOLS 1 を指定すると、 Db2 列Aに頻繁に発生する値を収集します。 NUMCOLS 2 を指定すると、 Db2 列セットAとBで頻繁に発生する値を収集します。 NUMCOLS 3 を指定すると、 Db2 列セットA、B、Cで頻繁に発生する値を収集します。
デフォルト値は 1です。これは、 RUNSTATS が、索引の最初のキー列に頻繁に発生する値を収集することを意味します。
- COUNT 整数
- 指定したキー列から収集する、頻繁に発生する値の個数を指示します。 例えば、15 と指定すると、RUNSTATS は、指定されたキー列から 15 個の頻度を収集することを意味します。
COUNT キーワードが指定されない場合、RUNSTATS ユーティリティーは値を自動的に判別し、最も頻繁に発生する値を収集します。
- ほとんど
- FREQVAL NUMCOLS COUNT MOST キーワードが指定された場合に、指定されたキー列セットについて、最も頻繁に発生する値 をユーティリティーが収集することを指示します。
- LEAST
- FREQVAL NUMCOLS COUNT LEAST キーワードが指定された場合に、指定されたキー列セットについて、発生頻度が最も低い値 をユーティリティーが収集することを指示します。
- BOTH
- FREQVAL NUMCOLS COUNT BOTH キーワードが指定された場合に、指定されたキー列セットについて、発生頻度が最高の値と最低の値を ユーティリティーが収集することを指示します。
- HISTOGRAM
- RUNSTATS INDEX の INDEX オプション (correlation-stats-spec を参照) とともに指定された場合に、指定されたキー列のグループについて、
ヒストグラム統計を収集することを指示します。 ヒストグラム統計は、順序が同じ接頭部列についてのみ収集できます。 ヒストグラム統計には、
順序が混合しているキー列は許可されません。
RUNSTATS がパーティション索引のヒストグラム統計を収集する場合、それらを SYSCOLDISTに集約します。 RUNSTATS INDEXは、XML NODEIDインデックスを処理する際に、HISTOGRAMキーワードを無視します。
- NUMQUANTILES 整数
- ユーティリティーが収集する変位値の数を指定します。 integer 値は、1 以上である必要があります。 指定する変位値の数は、指定されたキー列の値として異なる数がいくつあるのかを示す数の合計
を決して超えないような値にするべきです。 変位値の最大数は 100 です。
NUMQUANTILES キーワードが省略された場合、 NUMQUANTILES の値はデフォルトの 100 になります。 索引のキー数に 基づいて、変位値の数は最適な数に減らされます。
- SHRLEVEL
- 他のプログラムが RUNSTATS の実行中に表スペースにアクセスする場合、
読み取り専用アクセスを使用する必要があるか、
あるいは表スペースを変更できるかどうかを示します。
- CHANGE
- 他のプログラムは、表スペースまたは索引を変更することができ ます。 SHRLEVEL CHANGE を用いると、RUNSTATS はコミットされていないデータで統計を収集することがあります。
- REFERENCE
- 他のプログラムが行えるのは、読み取り専用アクセスのみです。
REGISTER YES
SHRLEVEL CHANGE 動作が有効である場合に、データ共用環境で RUNSTATS ユーティリティーによって読み取られるページがカップリング・ファシリティーに登録されることを指定します。 RUNSTATS INDEX では常に REGISTER YES が使用されます。 REGISTER NO を指定した場合、 Db2 メッセージ DSNU124I を送信し、代わりに REGISTER YES を使用します。
- REPORT
- RUNSTATS が、収集された統計を報告するメッセージのセットを生成することを指定します。
- NO
- RUNSTATS がメッセージのセットを生成しないことを示します。
- YES
- メッセージのセットが出力として SYSPRINT に送られることを示します。 RUNSTATS が生成するメッセージは、ユーティリティー制御ステートメントにおけるキーワードの組み合わせによって異なります。 ただし、これらのメッセージは UPDATE オプションの値によって左右されることはありません。 REPORT YES を用いると、スペース統計およびアクセス・パス 統計の報告書は必ず生成されます。
- UPDATE
- 収集されたどの統計をカタログ表に挿入するかを示します。
- ALL
- 収集されたすべての統計をカタログ内で更新することを示します。
- ACCESSPATH
- アクセス・パス選択に使用する統計のみで DB2 がカタログを更新することを 示します。
- SPACE
- スペース関連の統計のみで DB2 がカタログを 更新することを示します。
- NONE
- 収集された統計でカタログ表を更新しないことを示します。
RUNSTATS を実行すると常に動的キャッシュは無効になります。 ただし UPDATE NONE REPORT NO を指定した場合、RUNSTATS は、統計の収集、カタログ表の更新、レポートの生成を行わずに動的ステートメント・キャッシュ内のステートメントを無効にします。
- SORTDEVT
- 必要なソート作業データ・セットを動的に割り振るために外部ソート・プログラムが使用する
装置タイプを指定します。
- 装置タイプ
- 外部ソート・プログラムの SORT または OPTIONS オプションの DYNALLOC パラメーター で受け入れ可能な任意のディスク装置タイプを指定します。
以下のすべての条件に該当する場合、SORTDEVT のデフォルトは SYSALLDA に設定され、一時データ・セットは動的に割り振られます。
- SORTDEVT を省略した。
- ソートが必要である。
- ソート・プログラムが一時データ・セット用に必要とする DD ステートメントを指定しなかった。
SORTDEVT を指定し、SORTNUM を省略した場合、ソート・プログラムに値は渡されません。ソート・プログラムはプログラム自身のデフォルトを使用します。
- SORTNUM
- ソート・プログラムが割り振る、必要な作業データ・セットの
数を指定します。
integer は一時データ・セット数で、可能な 範囲は 2 から 255 です。
各ソートごとに最低 2 つのソート用作業データ・セットが必要です。 SORTNUM 値は、このユーティリティー内の各ソート呼び出しに適用されます。 例えば、 RUNSTATS が 3 つの索引で実行されており、 SORTKEYS が指定されており、制約限界の並列処理が行われず、 SORTNUM が 8として指定されているとします。 これらの場合、ジョブには合計 24 個のソート作業データ・セットが割り振られます。
各ソート作業データ・セットは、16 MB 境界より上と下の両方の仮想ストレージを使用します。 そのため、SORTNUM に指定する値が高すぎると、このユーティリティーは仮想ストレージの制約のために並列処理の度合いを減らす可能性があり、場合によっては、並列処理が使用されないことを意味する 1 にまで減らすこともあります。
- HISTORY
- 収集されたどの統計をカタログ履歴表に記録するかを示します。 HISTORY に指定する値は、 UPDATEに指定する値に依存しません。
デフォルトは、DSNTIPO インストール・パネルの STATISTICS HISTORY サブシステム・パラメーターの値です。 デフォルトでは、このパラメーター値は NONE です。
- ALL
- 収集された統計は、すべてカタログ履歴表で更新されることを示します。
- ACCESSPATH
- アクセス・パス選択に使用する統計のみで DB2 がカタログ履歴表を更新することを 示します。
- SPACE
- スペース関連の統計のみで DB2 がカタログ履歴表を 更新することを示します。
- NONE
- 収集された統計によってカタログ履歴表を更新しないことを示します。
- FORCEROLLUP
- 一部のパーティションで統計が収集されなかった場合でも統計の集約またはロールアップを行うかどうかを指定します。 このオプションによって、オプティマイザーは最適アクセス・パスを選択することができます。
- YES
- 一部のパーティションにデータが存在しない場合であっても、 集約またはロールアップ処理を強制的に行うことを示します。
- NO
- すべてのパーティションでデータが使用可能な場合に限り、 集約またはロールアップを行うことを示します。
INVALIDATECACHE 
動的ステートメント・キャッシュを無効化するかどうかを示します。- YES
- ジョブ・ステートメントで指定されたオブジェクトについて、動的キャッシュ内のステートメントが無効にされます。
- NO
- 動的キャッシュ内のステートメントは、ジョブ・ステートメント内で指定されたオブジェクトに対して無効にされません。
デフォルト値は NO ですが、以下の例外があります。- RUNSTATS LIST REPORT NO UPDATE NONE の場合、デフォルト値は YES です。
- RESET ACCESSPATH キーワードが指定された場合、デフォルト値は YES で、INVALIDATECACHE NO はサポートされません。

