17.10 - レベル2のチェック - 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
日本語 (日本)
pendingopレベルおよびレベル1のチェックを実行するのに加え、レベル2のチェックでは以下をチェックします。
  • 特定のサブテーブルの行IDがその他のサブテーブルの行IDと矛盾していないかどうかをチェックします。これは、さまざまなサブテーブルの行IDのリストを他のサブテーブルの行IDのリストと比較することによって行ないます。
  • 基本およびフォールバック行のチェックサムを計算して比較します。
  • ハッシュ コードがそれぞれのサブテーブルの行位置を正しく反映しているかどうかも検証します。

次のテーブルは、特定のレベル2のチェックについて要約しています。これらのチェックは、すべてのチェック レベルで実行された一般的なチェックに加えて行なわれます。これらの一般的なチェックの詳細については、CheckTableの一般的なチェックを参照してください。

チェックされたオブジェクト CheckTableが行なう事柄
データ サブテーブル
  • 基本行および対応するフォールバック行に対してチェックサムを計算して、行が重複していないかどうか、順序や位置に誤りがないかどうかをチェックします。
  • フォールバック テーブルの場合は、基本テーブルとフォールバック テーブルが矛盾していないかどうかをチェックします。
  • 列パーティションのオブジェクトで物理行の行IDのみチェックします。

レベル2のチェックはオンライン状態の全AMPにあるすべての基本およびフォールバック データ行で実行されます。CheckTableは、ダウンしているAMPのデータはチェックしません。利用不能なAMPがあった場合は、行の代替(基本またはフォールバック)コピーがそのAMPにあったものとみなし、行に対する基本とフォールバックのデータについてチェックは実行されません。しかし、CheckTableはすべてのサブテーブルをスキャンして、基本とフォールバックの間に矛盾以外の問題がないかどうかのチェックを継続します。

LOBサブテーブル
  • LOBサブテーブルの重複している行ID、順序が誤っている行ID、および位置が誤っている行がないかどうかをチェックします。
  • LOBに対してフォールバックが存在する場合、欠落している基本行またはフォールバック行がないかどうかをチェックします。
  • LOB行の基本コピーおよびフォールバック コピーのチェックサムを比較します。
  • ハッシュ コードがそれぞれのサブテーブルの行位置を正しく反映しているかどうかも検証します。
  • 実行のOIDの更新タグがラージLOB行の更新タグと一致していない、古くなったロケータ/OIDがないかどうかチェックします。
  • LOBのずれがないかどうかをチェックします。例えば、LOBの最初の部分と3番目の部分が存在するのに、サブテーブルから2番目の部分が欠落していないかどうか。
USI
  • 基本またはフォールバックのインデックス サブテーブルでインデックス付けされている行IDのリストと、基本またはフォールバックのデータ サブテーブルのコピーの論理行IDとを比較します。
  • フォールバック表の場合は、フォールバック コピーの行IDが基本の論理行IDと比較されます。
  • インデックス登録がない行、データ サブテーブルに存在しなくなったインデックス付きデータ行、および複数のインデックス付きデータ行を検出します。
  • 基本データ サブテーブルおよびフォールバック データ サブテーブルに重複したり、順序が誤っていたり、配置が誤っている行IDがあるかをチェックします(チェックの異なる段階でそのようなチェックがまだ実行されていない場合)。

基本行とフォールバック行を比較するチェックの場合、CheckTableはフォールバックを持つテーブルのみをチェックします。

CheckTableは、AMPが利用不能であるために参照できない基本またはフォールバック行はチェックしません。

NUSI
  • チェックの異なる段階で、行IDが重複していないかどうか、順序や位置に誤りがないかどうがチェックされていない場合に、これらのチェックを行ないます。
  • インデックス登録がない行、データ サブテーブルに存在しなくなったインデックス付きデータ行、および複数のインデックス付きデータ行を検出します。
  • 特定のインデックス付きデータ行が別のAMPに属していないかどうか、または別のサブテーブルに属していないかどうかをチェックします。
  • 行IDのリスト(プライマリ インデックス サブテーブル内のインデックス行および各フォールバック インデックス サブテーブルでインデックス付けされている)を、対応するデータ サブテーブル内のデータ行の論理行IDの実際のリストと比較して、リストが順序どおりであることを確認します。
  • 地理空間インデックスの場合、CheckTableは、地理空間インデックスのRツリー構造の整合性と正確さについての追加チェックを実行します。
参照インデックスのチェック
  • 指定された参照インデックス サブテーブルに対して、行IDが重複していないかどうか、順序や位置に誤りがないかどうかをチェックします。
  • 基本参照インデックス サブテーブル内の参照行に対応する行が、フォールバック サブテーブル内にあるかどうかをチェックします。
参照インデックス サブテーブルがフォールバックの場合、Vantageはサブテーブルの基本コピーから参照インデックス行の行IDを使用します。
SJI
  • 指定されたSJIがあるかどうかサブテーブルをチェックして、インデックス登録がない有効なデータ行、対応するテンポラル テーブルに存在しなくなったインデックス付けされている有効なデータ行、および複数回インデックス付けされている有効なデータ行を検出します。
  • 指定されたSJI用のサブテーブルに対して、行IDが重複していないかどうか、順序や位置に誤りがないかどうか、および閉じた行がないかどうかをチェックします。
  • SJI内の行IDのリストと、対応するテンポラル テーブル内の有効な行の実際の行IDを比較します。

SJIは、テンポラル固有性制約のあるテンポラル テーブルのためにVantageによって生成されます。テンポラル テーブルと制約の詳細については、<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。

CheckTableを使用する前にSCANDISKを実行して問題を訂正した場合、レベル2のチェック時には、行の重複や順序の誤りを検出することはありません。

レベル2チェックのスプール領域要件

レベル2およびレベル3のチェックでは、このシステムで使用できるスプール領域の量が重要になります。これらの2つのレベル チェックを実行するのに必要なスプール領域の量は、次の式で計算します。
  • RID = 32,020 * (# of rows / 3,200)
  • SIS = (52 * # of rows) + (3,000,000 * # of AMPs)

行数を計算するためには、基本データ テーブル内の行数を計算しなければなりません(プライマリ インデックス テーブルと同じ)。次のテーブルは、上記の公式で必要な値とスプール領域を示しています。

このスプール領域を必要とするもの
RID データのサブテーブル。
SIS 最大のセカンダリ インデックス サブテーブル。固有か非固有かは関係ありません。

したがって、セカンダリ インデックスを含んだフォールバックでないテーブルでレベル2のチェックを実行するのに、SIS は次の値に等しい合計スプール領域が必要になります。

RID + (SIS*2)

テーブルにフォールバックが含まれている場合には、SIS は、以下の計算式で求めたスプール領域が必要になります。

2 *(RID + (SIS*2))

PARALLELモードが指定されている場合には、必要なスプール領域の合計は、チェック対象となっている各表で必要なスプール領域の合計になります。