INSPECT コマンド

INSPECT コマンドは、データベースのページの整合性がとれているかどうかを調べることにより、データベースの構造上の整合性を検査します。 INSPECT コマンドでは、表オブジェクトと表スペースの構造が有効であることをチェックします。 オブジェクト間妥当性検査により、オンラインで索引とデータの整合性検査を実行できます。

範囲

単一パーティション・データベース環境では、有効範囲はその単一のパーティションのみです。 区画データベース環境では、db2nodes.cfgに定義されたすべての論理区画の集合です。 パーティション表の場合、CHECK DATABASEオプションとCHECK TABLESPACEオプションには、個々のデータ・パーティションと非パーティション索引が含まれます。 このCHECK TABLEオプションはパーティション化さ表でも使用できますが、単一のデータパーティションまたはインデックスをチェックするのではなく、表のすべてのデータパーティションとインデックスをチェックします。

許可

INSPECT CHECK の場合、以下の権限のどれかになります。
  • SYSADM
  • DBADM
  • SYSCTRL
  • SYSMAINT
  • 表のスキーマに対する SCHEMAADM 権限 (単一表である場合)
  • 単一表の場合 CONTROL 特権。

必要な接続

データベース

コマンド構文

Read syntax diagramSkip visual syntax diagramINSPECTCheck ClauseRow Compression Estimate ClauseFOR ERROR STATE ALLLIMIT ERROR TO DEFAULTLIMIT ERROR TOnALLLevel ClauseRESULTSKEEPfilenameOn Database Partition Clause
Check Clause
Read syntax diagramSkip visual syntax diagramCHECK DATABASEBEGIN TBSPACEIDnOBJECTIDnTABLESPACENAMEtablespace-nameTBSPACEIDnBEGIN OBJECTIDnTABLENAMEtable-nameSCHEMAschema-nameTBSPACEIDnOBJECTIDn
Row Compression Estimate Clause
Read syntax diagramSkip visual syntax diagramROWCOMPESTIMATE-TABLENAMEtable-nameSCHEMAschema-nameTBSPACEIDnOBJECTIDn
Level Clause
Read syntax diagramSkip visual syntax diagramEXTENTMAP NORMALEXTENTMAPNONELOWDATA NORMALDATANONELOWCOL NORMALCOLNONELOWBLOCKMAP NORMALBLOCKMAPNONELOWINDEX NORMALINDEXNONELOWLONG NORMALLONGNONELOWLOB NORMALLOBNONELOWXML NORMALXMLNONELOWCross Object Checking Clause
Cross Object Checking Clause
Read syntax diagramSkip visual syntax diagramINDEXDATA
On Database Partition Clause
Read syntax diagramSkip visual syntax diagramONDatabase Partition List ClauseALL DBPARTITIONNUMSEXCEPTDatabase Partition List Clause
Database Partition List Clause
Read syntax diagramSkip visual syntax diagramDBPARTITIONNUMDBPARTITIONNUMS( ,db-partition-number1TOdb-partition-number2 )

コマンド・パラメーター

CHECK
チェック処理を指定します。
DATABASE
全データベースを指定します。
BEGIN TBSPACEID n
指定された表スペース ID 番号を持つ表スペースから開始する処理を指定します。
OBJECTID n
指定された表スペース ID 番号およびオブジェクト ID 番号を持つ表から開始する処理を指定します。
TABLESPACE
NAME tablespace-name
指定された表スペース名を持つ単一の表スペースを指定します。
TBSPACEID n
指定した表スペース ID 番号を持つ単一表スペースを指定します。
BEGIN OBJECTID n
指定されたオブジェクト ID 番号の表から開始する処理を指定します。
TABLE
NAME table-name
指定された表名を持つ表を指定します。
SCHEMA schema-name
単一の表操作に対して指定された表名のスキーマ名を指定します。
TBSPACEID n OBJECTID n
指定された表スペース ID 番号およびオブジェクト ID 番号を持つ表を指定します。
ROWCOMPESTIMATE-TABLE
表での行の圧縮の効果を見積もります。 また、この操作の対象データベース・パーティションを指定することもできます。

この操作は、KEEPオプションが指定されているかどうかに関係なく、RESULTS出力ファイルを保持します。

このツールは表データのサンプル (標本) を取り、それに基づいてディクショナリーを作成することができます。 その後、このディクショナリーを使用し、サンプルに含まれる記録に基づいて圧縮をテストすることができます。 このテスト圧縮から得られるデータを使って、以下のような見積もりが可能になります。
  • 圧縮により削減されるバイトのパーセンテージ
  • 圧縮により削減されるページのパーセンテージ
  • コンプレッション・ディクショナリーのサイズ
  • エクスパンション・ディクショナリーのサイズ

この表に関して COMPRESS YES 属性が設定されている場合、この表のディクショナリーがまだ存在しなければ、INSPECT はこれらの圧縮見積もりの収集用に作成されたディクショナリーを挿入します。 INSPECT は、表にアクセスする他のアプリケーションと並行して、ディクショナリーを挿入しようとします。 ディクショナリーを挿入するには、「表の排他的変更」ロックおよび「表の意図的排他」ロックが必要です。 INSPECT は、行の圧縮をサポートする表にのみディクショナリーを挿入します。 パーティション表の場合、各パーティションごとに個別のディクショナリーが作成され、挿入されます。

表の行データのサンプリングおよび表のコンプレッション・ディクショナリーのビルドの際、INSPECT コマンドがサポートするのは表オブジェクト内の表の行データのみです。 表に XML 列が含まれる場合、その表の XML ストレージ・オブジェクト内にある XML データに関してはデータはサンプリングされず、コンプレッション・ディクショナリーはビルドされません。 代わりに、表関数を使用します。

ROWCOMPESTIMATE オプションは、索引圧縮見積もりを提供しません。 代わりに、表関数を使用します。

このパラメーターは、 カラム・オーガナイズ 表をサポートしません。

RESULTS
結果出力ファイルを指定します。 ファイルは診断データ・ディレクトリー・パスに書き込まれます。 チェック処理によってエラーが検出されない場合、この結果出力ファイルは INSPECT 操作の終了時に消去されます。 チェック処理によってエラーが検出される場合、この結果出力ファイルは INSPECT 操作の終了時に消去されません。
KEEP
結果出力ファイルを常に維持することを指定します。
file-name
結果出力ファイルの名前を指定します。 このファイルは診断データ・ディレクトリー・パスに作成されなければなりません。
ALL DBPARTITIONNUMS
db2nodes.cfgファイルに指定されたすべてのデータベース区画で操作を実行するように指定します。 データベース・パーティション節が指定されていない場合、これがデフォルトです。
EXCEPT
データベース・パーティション・リストに指定されるものを除き、db2nodes.cfgファイルに指定されるすべてのデータベース区画操作を指定します。
ON DBPARTITIONNUM | ON DBPARTITIONNUMS
データベース・パーティションのセットに対して操作を実行します。
db-partition-number1
データベース・パーティション・リスト内のデータベース・パーティション番号を指定します。
db-partition-number2
2 番目のデータベース・パーティション番号を指定し、 db-partition-number1 から db-partition-number2 までのすべてのデータベース・パーティションがデータベース・パーティション・リストに含まれるようにします。
FOR ERROR STATE ALL
その内部状態が既にエラー状態を示している表オブジェクトに関してチェックを実行する場合、 その状況だけを報告し、オブジェクトのスキャンは行いません。 このオプションを指定すると、内部状態が既にエラー状態を示している場合でも、 オブジェクトのスキャンを行います。

INDEXDATAオプションを使うと、索引またはデータ・オブジェクトがエラー状態である限り、オンライン索引/データ整合性検査は実行されません。

LIMIT ERROR TO n
レポート作成の限界値となる、オブジェクトに関するエラー状態のページ数。 オブジェクトのエラー・ページ数がこの限界に達すると、 残りのオブジェクトのチェック処理は中止されます。

このINDEXDATAオプションを使用すると、nは、データ整合性チェックへのオンラインインデックス作成中にレポートが制限されるエラーの数を表します。

LIMIT ERROR TO DEFAULT
1 つのオブジェクトについて、報告されるエラーを制限するデフォルトのページ数。 この値は、オブジェクトのエクステント・サイズです。 このパラメーターがデフォルトです。

INDEXDATAオプションを使う場合、DEFAULTは、オンライン索引とデータの整合性検査中にレポート作成が制限されるデフォルトのエラー数を表します。

LIMIT ERROR TO ALL
報告されるエラー・ページ数の限界はありません。

INDEXDATAオプションを使う場合、ALL は、データ整合性チェックのオンラインインデックス中に報告されるエラーの数に制限がないことを表します。

EXTENTMAP
エクステント・マップの処理レベルを指定します。
NORMAL
通常の処理レベルを指定します。 このオプションはデフォルトです。
NONE
処理を指定しません。
LOW
低処理レベルを指定します。
DATA
データ・オブジェクトの処理レベルを指定します。
NORMAL
通常の処理レベルを指定します。 このオプションはデフォルトです。
NONE
処理を指定しません。
LOW
低処理レベルを指定します。
COL
カラム・オーガナイズ ・データ・オブジェクトの処理レベルを指定します。
NORMAL
通常の処理レベルを指定します。 このオプションはデフォルトです。
NONE
処理を指定しません。
LOW
低処理レベルを指定します。
BLOCKMAP
ブロック・マップ・オブジェクトの処理レベルを指定します。
NORMAL
通常の処理レベルを指定します。 このオプションはデフォルトです。
NONE
処理を指定しません。
LOW
低処理レベルを指定します。

このパラメーターは、 カラム・オーガナイズ 表をサポートしません。

INDEX
索引オブジェクトの処理レベルを指定します。
NORMAL
通常の処理レベルを指定します。 このオプションはデフォルトです。
NONE
処理を指定しません。
LOW
低処理レベルを指定します。
LONG
ロング・オブジェクトの処理レベルを指定します。
NORMAL
通常の処理レベルを指定します。 このオプションはデフォルトです。
NONE
処理を指定しません。
LOW
低処理レベルを指定します。
LOB
LOB の処理レベルを指定します。
NORMAL
通常の処理レベルを指定します。 このオプションはデフォルトです。
NONE
処理を指定しません。
LOW
低処理レベルを指定します。
XML
XML 列オブジェクトの処理レベルを指定します。
NORMAL
通常の処理レベルを指定します。 このオプションはデフォルトです。 ほとんどの不整合について XML オブジェクト・ページが検査されます。 実際の XML データは検査されません。
NONE
処理を指定しません。
LOW
低処理レベルを指定します。 いくつかの不整合について XML オブジェクト・ページが検査されます。 実際の XML データは検査されません。
INDEXDATA
索引とデータの整合性検査を実行するために指定します。 デフォルトでは INDEXDATA 検査は実行されません。

このパラメーターは、 カラム・オーガナイズ 表をサポートしません。

  • その時点で検査されているオブジェクトを含むすべてのオブジェクトに対して読み取り/書き込みアクセスできる索引とデータの整合性検査を実行するには、以下のコマンドを発行します。
    inspect check table name fea3 indexdata results keep fea3high.out
  • 現在検査されているオブジェクトを含む、すべてのオブジェクトに対して読み取り/書き込みアクセスできる索引とデータの整合性検査を実行するには、以下のコマンドを発行します。
     INSPECT CHECK TABLE NAME car SCHEMA vps INDEXDATA RESULTS KEEP table1.out
  • EMPLOYEE という名前の表にあるデータが圧縮される場合に、保存されるストレージ・スペース量を見積もるには、以下のコマンドを発行します。
     INSPECT ROWCOMPESTIMATE TABLE NAME car SCHEMA vps RESULTS table2.out

使用上の注意

  1. 表オブジェクトCHECK操作の場合、オブジェクトの処理レベルを指定できます。 デフォルトは NORMAL レベルです。オブジェクトに NONE を指定すると、そのオブジェクトは除外されます。 LOW を指定すると、NORMAL で行われるチェックのサブセットのチェック操作を行います。
  2. このCHECK DATABASEオプションは、ID値を指定して表スペースまたは表を識別することにより、特定の表スペースまたは特定の表から開始するように指定できます。
  3. CHECK TABLESPACEオプションを指定して、表識別ID 値を指定することにより、特定の表から開始できます。
  4. 表スペースの処理は、表スペース内にあるオブジェクトにのみ影響を与えます。 ただし、INDEXDATA オプションを使用する場合は例外です。 INDEXDATA は、索引オブジェクトが表スペースにある限り、索引とデータの整合性を検査します。 これは次のことを意味します。
    • データ・オブジェクトが、索引オブジェクトが存在する検査対象の指定された表スペースとは異なる表スペースに存在する場合でも、INDEXDATA検査から受益します。
    • パーティション表の場合、それぞれの索引は別個の表スペースに存在する可能性があります。 索引/データ検査を実行するメリットがあるのは、指定された表スペース内に存在する索引だけです。 1つの表に対してすべてのインデックスを検査する場合は、CHECK DATABASEオプションまたはCHECK TABLEオプションを使用します。
  5. オンライン検査処理では、分離レベルを非コミット読み取りに指定して データベース・オブジェクトにアクセスします。 COMMIT 処理は、INSPECT 処理の際に行われます。 INSPECT を呼び出す前に、COMMIT または ROLLBACK を発行して作業単位を終了することをお勧めします。
  6. オンライン検査処理により、フォーマットされていない検査データが、 指定された結果ファイルに書き出されます。 ファイルは診断データ・ディレクトリー・パスに書き込まれます。 チェック処理によってエラーが検出されない場合、この結果出力ファイルは INSPECT 操作の終了時に消去されます。 チェック処理によってエラーが検出される場合、この結果出力ファイルは INSPECT 操作の終了時に消去されません。 チェック処理が完了した後、検査の詳細を表示するには、ユーティリティー db2inspf を使って検査結果データをフォーマットする必要があります。 結果ファイルには、データベース・パーティション番号のファイル拡張子が付きます。
  7. パーティション・データベース環境では、各データベース・パーティションごとに、そのデータベース・パーティション番号と一致した拡張子を持つ独自の結果出力ファイルが生成されます。 結果出力ファイルは、データベース・マネージャーの診断データ・ディレクトリー・パスに出力されます。 既に存在するファイル名を指定すると、操作は処理されません。 ですから、ファイル名を指定する前にそのファイルを除去する必要があります。
  8. 通常のオンライン検査処理では、分離レベルを非コミット読み取りに指定してデータベース・オブジェクトにアクセスします。 コンプレッション・ディクショナリーを表に挿入するとき、書き込みロックの獲得が試みられます。 辞書挿入ロックの詳細については、ROWCOMPESTIMATE オプションを参照してください。 コミット処理は、検査処理時に行われます。 検査操作を開始する前に、COMMIT または ROLLBACK を発行して作業単位を終了することをお勧めします。
  9. INDEXDATA オプションは、索引とデータの論理上の不整合性のみを検査します。 したがって、 INDEXDATA 検査を実行する前に、最初に INDEX 検査と DATA 検査を別々に実行して、すべての物理的破損を除外することをお勧めします。
  10. INSPECT コマンドに INDEXDATA パラメーターを指定すると、索引とデータの整合性検査を実行し、その時点で検査されているものを含むすべてのオブジェクト/表に対して読み取り/書き込みアクセスできます。 INSPECT INDEXDATA オプションには以下の検査が含まれます。
    • 指定された索引項目に関するデータ行が存在するかどうか。
    • データ値検査に対するキー。
    INDEXDATA オプションが指定された場合:
    • デフォルトでは、明示的に指定されたレベル節オプションの値だけが使用されます。 レベル節オプションが明示的に指定されていない場合、デフォルト・レベルは NORMAL から NONE に上書きされます。 例えば、INDEXDATAが指定された唯一のレベル句オプションである場合、デフォルトでは、データ・チェックに対する索引のみが実行されます。
  11. このBLOCKMAPオプションは、空だった多次元クラスタリング(MDC)または挿入時間クラスタリング(ITC)表・ブロックを再利用するための再編成後に、ブロックが表スペースで使用するために再利用されたかどうかを含む情報を返します。
  12. INSPECT コマンドがリソースのエラーまたは制限付きで完了した場合。例: システムのメモリが不足する場合は、リソースエラーが修正されるか、制限が解除された後で、システムを再実行してみてください。
  13. INSPECT コマンドは、REORG などの他のユーティリティーと同時に実行するように設計されています。 同時実行性は、表スペースロック、表ロック、行ロックなどのさまざまなロックを取得することで管理されます。 通常、デッドロックは発生しないと予想されます。 ただし、ワークロードとデータベース構成によっては、ロックタイムアウトが発生する場合があります。 また、デッドロックが発生した場合にはロック・マネージャーのデッドロック検出がデッドロックを処理し、 任意でデッドロックの被害者を選択することにご注意ください。