17.10 - 構文 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベース ユーティリティ

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
構成
Publication ID
B035-1102-171K-JPN
Language
日本語 (日本)
CHECK check_spec
  [ BUT { ONLY | NOT } check_object [,...] ] AT LEVEL
  { PENDINGOP | ONE | TWO | THREE }
  [ WITH ERROR LIMIT = [ nnn ] | WITH NO ERROR LIMIT ]
  [ SKIPLOCKS ]
 
  [ IN SERIAL | IN PARALLEL [ TABLES = n ] [ MAXSESSIONS ] ]
  [ PRIORITY = { L | M | H | R | performance_group_name } ]
  [ CONCURRENT MODE [ RETRY LIMIT n ] ]
  [ ERROR DOWN | DOWN ONLY ]
  [ COMPRESSCHECK ]
  [ CHECKINVALIDS ]
  [ SCOPE { DICTIONARY | USER | ALL } ];
check_spec
{ ALL TABLES [ EXCLUDE [dbname.]table_name [,...] ] |
  dbname EXCLUDE [dbname.]table_name [,...] |
  [dbname.]table_name [,...] |  
  AGAIN [ Error-filename ]
}
check_object
{ INDEX ID = nnn |
  UNIQUE INDEXES |
  NONUNIQUE INDEXES |
  REFERENCE ID = nnn |
  REFERENCE INDEXES |
  DATA |
  LARGE OBJECT ID = nnn |
  LOB ID = nnn |
  LARGE OBJECTS |
  LOBS |
  SJI ID = nnn |
  SJIS
}

構文要素

ALL TABLES
CheckTableはシステムすべてのデータベースにおける、すべてのテーブル、結合インデックス、およびハッシュ インデックスをチェックします。
CheckTableは、結合インデックスおよびハッシュ インデックスをテーブルとみなします。ここでは、テーブルへの言及は、テーブル、結合インデックス、ハッシュ インデックスを含むものとして解釈する必要があります。
dbname
CheckTableは指定したデータベースで、すべてのテーブル、結合インデックス、およびハッシュ インデックスをチェックします。
データベース名を指定するときに、ワイルドカード文字またはワイルドカード構文を使用できます。詳細は、名前でのワイルドカード文字の使用を参照してください。
AGAIN
前回のチェックで失敗したテーブルを再チェックします。
Error-filename
Error-filenameは、Linuxのファイル名です。
EXCLUDE
CheckTableは、指定したテーブルまたはデータベースをチェックから外します。
  • CHECK ALL TABLES EXCLUDEは、1つ以上のデータベースまたはテーブルをチェックから外します。
  • CHECK dbname EXCLUDEは、指定したデータベースで1つ以上のテーブルを除外します。
指定したオブジェクトがシステムに存在しない場合、サマリー レポートにはメッセージ内のオブジェクトがリストされます。
このオプションを指定しない場合、CheckTableはシステム内のすべてのデータ オブジェクトをチェックします。
tablename or dbname.tablename
CheckTableは、特定のテーブル、結合インデックス、またはハッシュ インデックスをグローバル一時テーブルを含めてチェックします。
データベース名を指定するときに、ワイルドカード文字またはワイルドカード構文を使用できます。詳細は、名前でのワイルドカード文字の使用を参照してください。
BUT ONLY
BUT NOT
CheckTableがチェックする対象に制約を設定します。
  • BUT ONLYを指定すると、CheckTableはそれ以降指定されたオブジェクトのみをチェックします。
  • BUT NOTを指定すると、CheckTableはそれ以降指定されたオブジェクトのチェックをスキップします。
選択制約を指定しない場合、CheckTableはシステム内のすべてのデータ オブジェクトをチェックします。
これらのオプションは、pendingopレベルのチェックでは無視されます。
例:以下のコマンドでは、レベル3で、INDEX ID=nnnのみを対象とするように検査を制限して、すべてのテーブルを検査します。
CHECK ALL TABLES BUT ONLY INDEX ID=nnn AT LEVEL THREE;
INDEX ID = nnn
CheckTableで制約を使用する際に、特定のセカンダリ インデックス(インデックスIDによって指定)を指定します。一般に、このオプションは、1つのテーブルをチェックする場合だけに指定します。
UNIQUE INDEXES
CheckTableで制約を使用する際に、すべての固有セカンダリ インデックスを指定します。
NONUNIQUE INDEXES
CheckTableで制約を使用する際に、すべての非固有セカンダリ インデックスを指定します。
REFERENCE ID = nnn
CheckTableで制約を使用する際に、特定の参照インデックス(インデックスIDによって指定)を指定します。
REFERENCE INDEXES
CheckTableで制約を使用する際に、すべての参照インデックスを指定します。
DATA
CheckTableで制約を使用する際に、データ サブテーブルを指定します。
LARGE OBJECT ID = nnn
CheckTableで制約を使用する際に、特定のラージ オブジェクト(IDによって指定)を指定します。
LOB ID = nnn
CheckTableで制約を使用する際に、特定のラージ オブジェクト(IDによって指定)を指定します。
LARGE OBJECTS
CheckTableで制約を使用する際に、すべてのラージ オブジェクトを指定します。
LOBS
CheckTableで制約を使用する際に、すべてのラージ オブジェクトを指定します。
SJI ID =nnn
CheckTableで制約を使用する際に、特定のシステム定義の結合インデックス(インデックスIDによって指定)を指定します。
SJIS
CheckTableで制約を使用する際に、すべてのシステム定義の結合インデックスを指定します。
AT LEVEL
PENDINGOPONETWO、またはTHREEのいずれかになります。
  • PENDINGOPは、保留操作のあるテーブルのリストを提供します。
  • ONEは、エラーのある特定のテーブルを識別します。
  • TWOは、以下の詳細なチェックを実行します。
    • 行IDの整合性
    • 基本およびフォールバック行のチェックサム
    • ハッシュ コード
  • THREEでは、ほとんどの診断情報が提供されますが、システム リソースの使用が多くなり、時間も長くかかります。このレベルのチェックは、必要なときだけ使用するようにしてください。
詳細については、チェック レベルを参照してください。
WITH ERROR LIMIT= nnn
nnn個以上のエラーを検出すると、CheckTableはテーブルのチェックを停止します。複数のテーブルをチェックしている場合は、次のテーブルに移ります。
デフォルトはチェックされるテーブルごとに20個のエラーです。
WITH NO ERROR LIMIT
CheckTableはテーブルごとにすべてのエラーを報告します。
SKIPLOCKS
CheckTableは、ロックされたすべてのテーブルを自動的にスキップします。
テーブルがすでにロックされており、CheckTableがロックを獲得できない場合、CheckTableはテーブル チェックをスキップすることを示します。CheckTable処理の最後のサマリー時に、スキップされたテーブルの合計数が示されます。
非同時実行モードでこのオプションを指定しないと、DBS制御のChecktableTableLockRetryLimitフィールドの値によっては、CheckTableがテーブル ロックを無期限に待機するおそれがあります。ChecktableTableLockRetryLimitフィールドは、テーブルが他のアプリケーションによってロックされているときにCheckTableが非同時実行モードでテーブル チェックを再試行する継続時間を分単位で指定します。
デフォルトは0であり、これは非同時実行モードで、CheckTableがテーブルにアクセスできるまでテーブル チェックを再試行することを意味します。
ChecktableTableLockRetryLimit設定が0より大きい場合、CheckTableは指定された制限内でテーブル チェックを再試行します。
詳細については、ChecktableTableLockRetryLimitを参照してください。
IN SERIAL
IN PARALLEL
CheckTableが使用するチェック モードを指定します。
  • IN SERIALでは、CheckTableは一度に1つのテーブルをチェックします。これは、デフォルトです。
  • IN PARALLELでは、CheckTableは複数のテーブルを同時にチェックします。PARALLELモードを使用すると、時間の節約になりますが、リソースが集中的に使用されます。CheckTableがPARALLELモードで同時にチェックできるテーブルの数は、リソースをどれほど使用できるかにより異なります。任意の時点でCheckTableが実行するPARALLELチェックの数のステータスをチェックできます。ステータスのチェック方法は、テーブル チェックのステータスの判別を参照してください。
MAXSESSIONS
最大数の並列セッションでユーザー テーブル チェックを実行します。
TABLES=n
IN PARALLELでオプションとして、同時にチェックされるテーブルの上限の数を指定します。nの値は、2から8までの任意の整数です。
レベル1のチェックでは、同時にチェックできるテーブルの実際の最大数は、システムに定義されているAMPワーク タスク(AWT)の最大数に基づきます。その他のすべてのレベルでは、最大数はAWTの最大数と使用可能スプール領域に基づきます。TABLES=nオプションは、PARALLELでチェックされるテーブルの数を、最大値より小さい数に減らすために使用します。
n個のテーブルをPARALLELモードでチェックするだけのスプール領域が不足している場合、チェックされる数は指定した数よりも小さくなります。
PRIORITY =
CheckTableが実行される優先順位を指定します。このオプションを使用すると、リソースの使用状況を制御してパフォーマンスを改善することができます。使用可能な優先順位レベルを次に示します。
  • L - 低
  • M - 中

    PRIORITY=オプションが指定されていない場合、これがデフォルトです。

  • H - 高
  • R - ラッシュ
これらの値は特定のワークロードにマッピングされます。デフォルトのマッピングはL、M、H、およびRに対して存在しますが、Viewpointワークロード管理ポートレットで変更できます。ワークロード管理ポートレットの詳細については、<Teradata® Viewpointユーザー ガイド、B035-2206>を参照してください。
  • workload name- CheckTableが実行される特定のワークロード。指定されたワークロードが存在しない場合、CheckTableはワークロード管理のCheckTableにマップされたワークロード内で実行されます。
CONCURRENT MODE
静止していないシステムで実行するときに使用します。CONCURRENT MODEは、ロック プロトコルを最適化するとともに、ロックされたテーブルを自動的にスキップして後で再試行することにより、ロック競合を少なくします。CheckTableはすべてのテーブルをチェックした後、ロック競合のためにスキップしたすべてのテーブルに対して自動的に再試行します。
ログオンが有効または無効な静止していないシステム(非静止環境)、またはログオンが有効な静止状態のシステムでは、CheckTableは、ユーザーが指定したコマンドを上書きして、RETRY LIMITを1に設定したCONCURRENT MODEを強制適用します。通常の実行環境では、CONCURRENT MODEがデフォルトで使用されます。
CONCURRENT MODEオプションを指定すると、IN PARALLELオプションは指定できません。CheckTableは、ロック競合を少なくするために、常に並行モードでテーブルを逐次チェックします。
CHECK ALL TABLES CONCURRENT MODEを指定しても、データ ディクショナリとDBCデータベースのチェックは並行モードでは行なわれません。DBCデータベースを並行(同時実行)モードでチェックするには、CHECK DBC CONCURRENT MODEを使用します。
CONCURRENT MODEの詳細については、テーブル チェックのステータスの判別を参照してください。
RETRY LIMIT n
CONCURRENT MODE操作時にスキップされたテーブルの再チェックを試行する前に、CheckTableが待機する時間(分単位)。
nがゼロの場合、CheckTableはスキップされたテーブルをチェックしようとしません。
RETRY LIMITが指定されない場合、CheckTableはすべてのテーブルのチェックが正常に終了するまで、ロックされたテーブルに対していつまでもチェックを再試行し続けます。
CheckTableはロックされたテーブルにアクセスしようとする際、最大5分間ロックが解放されるのを待機します。ロックがその時間内に解放されない場合、CheckTableは次のテーブルに移動します。RETRY LIMITにまだ達していない場合、CheckTableはロックされたテーブルに戻って再試行します。
ERROR ONLY
CheckTableは、バイパスしたテーブルとエラーまたは警告のあるテーブルのみを表示します。このオプションを使用すると、CheckTableが検出する問題をすばやく識別して対処することができます。
このオプションは、pendingopレベルのチェックでは無視されます。
DOWN ONLY
Vantageでは、一部のファイル システム エラーについて、影響を受ける特定のデータ サブテーブルやインデックス サブテーブル、またはデータ サブテーブルやインデックス サブテーブルの行の連続した範囲(“領域”)を分離することができます。 その場合、Vantageでは、影響を受けるサブテーブルまたは領域だけをダウンとマークします。 これにより、ダウンしているサブテーブルまたは行にはアクセスする必要がないトランザクションを、データベースのクラッシュや再始動を伴わずに実行できるため、システムのパフォーマンスと可用性が向上します。
ただし、サブテーブル内のいくつかの領域がダウンとマークされている場合は、サブテーブルそのものの機能上の問題を示している可能性があります。したがって、AMPあたりのダウン領域がしきい値数を超えた場合、サブテーブル全体がすべてのAMPでダウンとマークされ、ほとんどのSQL問合わせで使用できなくなります。このしきい値は、DBS制御ユーティリティのGeneralフィールド グループのMaxDownRegionsフィールドを使用して調整できます。
DOWN ONLYオプションを指定すると、CheckTableには、ダウンとマークされたデータおよびインデックス サブテーブルだけのステータス情報が表示されます。サブテーブルのダウン ステータス情報は、チェック レベル1、2、および3で表示されます。ダウンした領域に含まれている特定の行は、チェック レベル2と3に対してのみリストされます。ダウン ステータス情報は、pendingopレベルのチェックでは表示されません。
COMPRESSCHECK
CheckTableはテーブル ヘッダーからの圧縮情報(テーブルの定義内に指定された場合、圧縮アルゴリズムUDFの多値と名前を圧縮します)と、DBC.TVFieldsテーブルのCompressValueList列に格納されている、対応する情報とを比較します。
レベル3で、圧縮データのサブテーブルがチェックされます。例えば、多値圧縮された列の場合、CheckTableはテーブル ヘッダー内の圧縮リストと各行の列の値を比較して、適切な値が圧縮されていることを確認します。
このオプションは、pendingopレベルのチェックでは無視されます。
圧縮の詳細は、<Teradata Vantage™ - データベースの設計、B035-1094>および<Teradata Vantage™ - データ タイプおよびリテラル、B035-1143>を参照してください。
CHECKINVALIDSI
CheckTableは、無効なセカンダリ インデックスを検出した場合であってもインデックスのチェックを続行します。このオプションを指定しないと、無効なSIを検出した場合にCheckTableは以降のインデックス チェックを実行しないで、警告メッセージをログに記録します。このオプションでCheckTableがインデックス チェックを続行できるようにすると、より詳細なエラー情報が報告され、インデックスが無効な理由を判別するのに役立つ場合があります。
SCOPE
次のいずれかと一緒に使用します。
  • DICTIONARY: 指定したCheckTableコマンドに対して、バッチ モード エラー ロギングを使用したディクショナリ チェックのみを実行します。
  • USER: 指定したCheckTableコマンドに対して、ユーザー テーブル チェックのみを実行します。
  • ALL: 指定したCheckTableコマンドに対して、エラー ロギングを使用したバッチ モードでのディクショナリ チェックとユーザー テーブル チェックを実行します。