CHECK INDEX
CHECK INDEX オンライン・ユーティリティーは、索引が索引付け対象のデータと整合しているかどうかをテストし、不整合が検出された場合には警告メッセージを出します。
CHECK INDEX ユーティリティーは、索引がデータと整合性がとれない可能性のあるすべての表スペースで、 条件付き再始動またはポイント・イン・タイム・リカバリーを行った後に実行します。
また、CHECK INDEX は、特に DELETE YES を指定する場合は、CHECK DATA を実行する 前にも実行してください。 CHECK DATA の前に CHECK INDEX を実行すると、CHECK DATA の使用する索引が 有効であることが保証されます。 CHECK INDEX は、補助表の索引を検査する際、 各 LOB が 1 つの索引項目によって表されているか、 およびすべての LOB に対して 1 つの索引項目が存在しているかを検証します。
索引に VARBINARY 列がある場合の CHECK INDEX の実行
次の特性を持つ索引に対して CHECK INDEX を実行すると、CHECK INDEX は失敗します。
- 索引が、VARBINARY 列、または VARBINARY データ・タイプに基づいた特殊タイプの列で作成された。
- 索引列が DESC 属性を持っている。
この問題を修正するには、列のデータ・タイプを BINARY に変更してから、索引を再作成してください。
出力
CHECK INDEX は、索引とデータが整合しているかどうかを 示すいくつかのメッセージを生成します。
ユニーク索引の場合、索引が UNIQUE WHERE NOT NULL 文節で作成されていない限り、2 つの NULL 値は どれも等しいと見なされます。 その場合、そのキーが単一列であれば、そのキーには 任意の数の NULL 値を含めることができ、CHECK INDEX はエラー・メッセージを出しません。
CHECK INDEX は、複数の NULL 値を検出し、かつ、ユニーク索引が UNIQUE WHERE NOT NULL 文節を用いて 作成されていない場合は、エラー・メッセージを出します。
必要な許可
このユーティリティーを 実行するには、以下のいずれかの権限を含む特権セットを使用する 必要があります。
- データベースの STATS 特権
- データベースの DBADM、DBCTRL、あるいは DBMAINT 権限。 ユーティリティーの処理対象のオブジェクトが、 暗黙に作成されたデータベース内にある場合、その暗黙に作成されたデータベース または DSNDB04 の DBADM 権限が必要です。
- システム DBADM 権限
- SYSCTRL または SYSADM 権限
インストール・システム SYSOPR 権限を持つ ID も、CHECK INDEX を実行することが できますが、DSNDB01 または DSNDB06 データベースの表スペースに限られます。
SHRLEVEL CHANGE を使用しようとしている場合、CONCURRENT オプションを指定した COPY を起動するユーザー ID は、DFSMSdss ADRDSSU コマンドを実行するのに必要な 権限を備えていなければなりません。 DFSMSdss は、ユーティリティー・バッチ・アドレス・スペースの 権限でシャドー・データ・セットを作成します。 送信者は、シャドウデータセットに対して、 RACF® ALTER権限または同等の権限を持っている必要があります。
CHECK INDEX の実行フェーズ
- フェーズ
- 説明
- UTILINIT
- 初期化の実行
- UNLOAD
- データ・キーのアンロード
- SORTCHK
- アンロードされたデータ・キーをソートし、 索引をスキャンしてそれらのデータ・キーを妥当性検査します。
- UTILTERM
- 終結処理の実行