INSPECT コマンド
データベースのページの整合性がとれているかどうかを調べることにより、データベースの構造上の整合性を検査します。 INSPECT コマンドでは、表オブジェクトの構造および表スペースの構造が有効かどうかが調べられます。オブジェクト間妥当性検査により、オンラインで索引とデータの 整合性検査を実行できます。
有効範囲
単一パーティション・データベース環境では、有効範囲はその単一のパーティションのみです。 パーティション・データベース環境では、db2nodes.cfg に定義されている論理パーティションすべてのコレクションです。 パーティション表の場合、CHECK DATABASE および CHECK TABLESPACE オプションの対象には、個々のデータ・パーティションと非パーティション索引が含まれます。 CHECK TABLE オプションもまたパーティション表に使用できますが、その場合、単一のデータ・パーティションや索引ではなく、表内のすべてのデータ・パーティションと索引が検査されます。
許可
- SYSADM
- DBADM
- SYSCTRL
- SYSMAINT
- 単一表の場合 CONTROL 特権。
必要な接続
データベース
コマンド構文
>>-INSPECT--+-| Check Clause |--------------------+-------------> '-| Row Compression Estimate Clause |-' .-LIMIT ERROR TO DEFAULT--. >--+---------------------+--+-------------------------+---------> '-FOR ERROR STATE ALL-' '-LIMIT ERROR TO--+-n---+-' '-ALL-' >--+------------------+--RESULTS--+------+--filename------------> '-| Level Clause |-' '-KEEP-' >--+----------------------------------+------------------------>< '-| On Database Partition Clause |-' Check Clause |--CHECK--------------------------------------------------------> >----+-+-DATABASE--+-------------------------------------+------------+-+----| | | '-BEGIN TBSPACEID--n--+-------------+-' | | | | '-OBJECTID--n-' | | | '-TABLESPACE--+-NAME--tablespace-name-+--+-------------------+-' | | '-TBSPACEID--n----------' '-BEGIN OBJECTID--n-' | '-TABLE--+-NAME--table-name--+---------------------+-+-------------' | '-SCHEMA--schema-name-' | '-TBSPACEID--n--OBJECTID--n-----------------' Row Compression Estimate Clause |--ROWCOMPESTIMATE-TABLE----------------------------------------> >--+-NAME--table-name--+---------------------+-+----------------| | '-SCHEMA--schema-name-' | '-TBSPACEID--n--OBJECTID--n-----------------' Level Clause .-EXTENTMAP NORMAL----. .-DATA NORMAL----. |--+---------------------+--+----------------+------------------> '-EXTENTMAP--+-NONE-+-' '-DATA--+-NONE-+-' '-LOW--' '-LOW--' .-COL NORMAL----. .-BLOCKMAP NORMAL----. >--+---------------+--+--------------------+--------------------> '-COL--+-NONE-+-' '-BLOCKMAP--+-NONE-+-' '-LOW--' '-LOW--' .-INDEX NORMAL----. .-LONG NORMAL----. .-LOB NORMAL----. >--+-----------------+--+----------------+--+---------------+---> '-INDEX--+-NONE-+-' '-LONG--+-NONE-+-' '-LOB--+-NONE-+-' '-LOW--' '-LOW--' '-LOW--' .-XML NORMAL----. >--+---------------+--| Cross Object Checking Clause |----------| '-XML--+-NONE-+-' '-LOW--' Cross Object Checking Clause |--+-----------+------------------------------------------------| '-INDEXDATA-' On Database Partition Clause |--ON-----------------------------------------------------------> >--+-| Database Partition List Clause |----------------------------------+--| '-ALL DBPARTITIONNUMS--+--------------------------------------------+-' '-EXCEPT--| Database Partition List Clause |-' Database Partition List Clause |--+-DBPARTITIONNUM--+------------------------------------------> '-DBPARTITIONNUMS-' .-,--------------------------------------------------. V | >--(----db-partition-number1--+--------------------------+-+--)--| '-TO--db-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
使用上の注意
- 表オブジェクトでの CHECK 操作に関して、処理レベルはオブジェクトに対して指定できます。デフォルトは NORMAL レベルです。オブジェクトに NONE を指定すると、そのオブジェクトは除外されます。LOW を指定すると、NORMAL で行われるチェックのサブセットのチェック操作を行います。
- 表スペースまたは表を識別する ID 値を指定することにより、 特定の表スペースまたは表から開始するように CHECK DATABASE オプションを指定できます。
- 表を識別する ID 値を指定することにより、特定の表から開始するように CHECK TABLESPACE オプションを指定できます。
- 表スペースの処理は、表スペース内にあるオブジェクトにのみ影響を与えます。
ただし INDEXDATA オプションを使用する場合は例外です。
INDEXDATA は、索引オブジェクトが表スペース内に存在する限り、索引とデータの整合性を検査します。
つまり、
- 検査対象として指定された、索引オブジェクトがある表スペースとは別の表スペースにデータ・オブジェクトが存在する場合でも、INDEXDATA 検査は依然として有効です。
- パーティション表の場合、それぞれの索引は別個の表スペースに存在する可能性があります。 索引/データ検査を実行するメリットがあるのは、指定された表スペース内に存在する索引だけです。 1 つの表に対するすべての索引を検査するには、CHECK TABLE オプションまたは CHECK DATABASE オプションを使用してください。
- オンライン検査処理では、分離レベルを非コミット読み取りに指定して データベース・オブジェクトにアクセスします。 COMMIT 処理は、INSPECT 処理の際に行われます。INSPECT を呼び出す前に、COMMIT または ROLLBACK を発行して作業単位を終了することをお勧めします。
- オンライン検査処理により、フォーマットされていない検査データが、 指定された結果ファイルに書き出されます。 ファイルは診断データ・ディレクトリー・パスに書き込まれます。 チェック処理によってエラーが検出されない場合、この結果出力ファイルは INSPECT 操作の終了時に消去されます。チェック処理によってエラーが検出される場合、この結果出力ファイルは INSPECT 操作の終了時に消去されません。チェック処理が完了した後、検査の詳細を表示するには、ユーティリティー db2inspf を使って検査結果データをフォーマットする必要があります。結果ファイルには、データベース・パーティション番号のファイル拡張子が付きます。
- パーティション・データベース環境では、各データベース・パーティションごとに、そのデータベース・パーティション番号と一致した拡張子を持つ独自の結果出力ファイルが生成されます。 結果出力ファイルは、データベース・マネージャーの診断データ・ディレクトリー・パスに出力されます。 既に存在するファイル名を指定すると、操作は処理されません。 ですから、ファイル名を指定する前にそのファイルを除去する必要があります。
- 通常のオンライン検査処理では、分離レベルを非コミット読み取りに指定してデータベース・オブジェクトにアクセスします。 コンプレッション・ディクショナリーを表に挿入するとき、書き込みロックの獲得が試みられます。 ディクショナリー挿入ロックの詳細については、ROWCOMPESTIMATE オプションを参照してください。 コミット処理は、検査処理時に行われます。 検査操作を開始する前に、COMMIT または ROLLBACK を発行して作業単位を終了することをお勧めします。
- INDEXDATA オプションは、索引とデータの間の論理的な不整合だけを調べます。 したがって、INDEXDATA 検査を実行する前に、物理的な破損が生じないように、まず INDEX および DATA 検査を別々に実行するようお勧めします。
- INSPECT コマンドに INDEXDATA パラメーターを指定すると、索引とデータの整合性検査を実行し、その時点で検査されているものを含むすべてのオブジェクト/表に対して読み取り/書き込みアクセスできます。INSPECT INDEXDATA オプションには以下の検査が含まれます。
- 指定された索引項目に関するデータ行が存在するかどうか。
- データ値検査に対するキー。
INDEXDATA オプションが指定される場合、- デフォルトでは、明示的に指定されたレベル節オプションの値だけが使用されます。レベル節オプションが明示的に指定されていない場合、デフォルト・レベルは NORMAL から NONE に上書きされます。 例えば、指定されているレベル節オプションが INDEXDATA だけである場合、デフォルトでは、索引とデータのチェックのみ実行されます。
- BLOCKMAP オプションは、マルチディメンション・クラスタリング (MDC) 表または挿入時クラスタリング表 (ITC) の空きブロックを再利用するための再編成の後に、表スペースでブロックが再利用されたかどうかなどの情報を返します。
- リソース・エラーまたはリソース制限 (システムのメモリー不足など) によって INSPECT コマンドが終了した場合は、そのリソース・エラーを修正するかリソース制限を解除した後に、再度実行してみる必要があります。
