17.00 - 17.05 - Relation - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLリクエストおよびトランザクション処理

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
ユーザー ガイド
Publication ID
B035-1142-170K-JPN
Language
日本語 (日本)

Relationの機能

獲得された問合わせのアクセス計画におけるすべてのテーブルとスプール ファイルを記述します。

Relationテーブルの定義

次のCREATE TABLEリクエストは、Relationテーブルを定義しています。

   CREATE TABLE Relation(
     RelationKey            INTEGER NOT NULL,
     QueryID                INTEGER NOT NULL,
     UDB_Key                INTEGER NOT NULL,
     Name                   VARCHAR128 CHARACTER SET UNICODE
                            NOT CASESPECIFIC NOT NULL,
     RelationID             INTEGER NOT NULL,
     RelationKind           CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC NOT NULL,
     SortInfo               CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC,
     SortKind               CHARACTER(3) CHARACTER SET LATIN
                            NOT CASESPECIFIC,
     SortKey                VARCHAR(1024) CHARACTER SET UNICODE
                            NOT CASESPECIFIC,
     GeogInfo               CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC,
     Cached                 CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC, NOT NULL,
     SyncScan               CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC NOT NULL,
     Cardinality            FLOAT,
     Confidence             CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC,
     MaxCardinality         FLOAT,
     ViewName               VARCHAR128 CHARACTER SET UNICODE
                            UPPERCASE NOT CASESPECIFIC,
     TableDDL               VARCHAR(20000) CHARACTER SET UNICODE
                            NOT CASESPECIFIC,
     TableName              VARCHAR128 CHARACTER SET UNICODE
                            NOT CASESPECIFIC,
     PartitionInfo          CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC NOT NULL,
     Overflow               CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC,
     Complete               CHARACTER(1) CHARACTER SET LATIN,
                            NOT CASESPECIFIC,
     Version                SMALLINT,
     SpoolCompressedAllowed CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC,
     SpoolSize              FLOAT,
     RelationAttributeType  CHARACTER(10) CHARACTER SET LATIN
                            NOT CASESPECIFIC
     RelationAttributeValue VARCHAR(100) CHARACTER SET LATIN
                            NOT CASESPECIFIC
     TemporalProperty       CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC NOT NULL,
     ResultTemporalProperty CHARACTER(1) CHARACTER SET LATIN
                            NOT CASESPECIFIC NOT NULL,
     NumCombinedPartitions  BIGINT,
     NumContexts            INTEGER,
     NumCPReferences        INTEGER)
   PRIMARY INDEX (QueryID),
   UNIQUE INDEX (RelationKey);

Relationの属性の定義

次のテーブルは、Relationテーブルの属性を定義しています。

属性 定義
RelationKey
  • データベースの中でのリレーションの固有識別子。
  • RelationテーブルのUSI。
QueryID
  • 問合わせ計画が獲得された際にシステムによって生成される、問合わせの固有識別子。
  • RelationテーブルのNUPI。
UDB_Key この行に記述されているリレーションを含むユーザーまたはデータベースの識別子。
Name 以下のうちの1つ。
  • テーブルの別名
  • SPOOLという語
  • ROWIDSPOOLという語
RelationID データベース内のリレーションまたはスプール ファイルの固有識別子。
RelationKind 派生テーブル、グローバル一時テーブル、ハッシュ インデックス、結合インデックス、恒久テーブル、揮発テーブル、およびスプール ファイルのどれであるかを示すコード。
  • Dは派生テーブル。

    Name属性には、派生テーブルの名前が含まれます。

  • Gはグローバル一時テーブル。
  • Hはハッシュ インデックス。
  • Jは結合インデックス。
  • OはNoPIテーブル。
  • Pは永久テーブル。

    これは、通常の恒久テーブルとキュー テーブルを区別しません。

    これを区別するために、RelationとDBC.TVMまたはDBC.Tablesビューを結合することができます。この場合、TVM.QueueFlag=TまたはTables.QueueFlag=Tに設定します。

    Tは、キュー テーブルを示すDBC.TVM.QueueFlag値です。

  • Sはスプール ファイル。
  • Vは揮発テーブル。
SortInfo リレーションをソートするかどうかを記述する。
  • Fの場合、リレーションはソートされない。
  • Tの場合、リレーションはソートされる。
SortKind リレーションがソートされる方法。

SortInfoの値がTの場合にのみ使用されます。

  • F1Sは、Field1のソート。
  • F1Uは、Field1の固有なソート。
  • FHSは、Field1のハッシュ ソート。
  • FIDは、FieldIDのソート。
  • FHUは、Field1ハッシュの固有なソート。
  • HN1は、Field1ハッシュのmin1ソート。
  • HN2は、Field2ハッシュのmin2ソート。
  • HX1は、Field1ハッシュのmax1ソート。
  • HX2は、Field1ハッシュのmax2ソート。
  • JISは、JoinIndexソート。
  • MN1は、Field1のmin1ソート。
  • MN2は、Field1のmin2ソート。
  • MX1は、Field1のmax1ソート。
  • MXは、Field1のmax2ソート。
  • F1Sは、Field1のソート。
  • RHRは、RowHashRowのソート。
  • RHSは、Rowhashのソート。
  • UF1は、固有なField1のソート。
  • UNKは、ソート種類が不明。
  • URSは固有なrwoIDのソート。
SortKey ソート キーを構成するデータベース名、テーブル名、および列名を結び付けて作成されたソート情報文字列のリスト。最初の1,024文字だけが取り込まれます。残りの文字は切り捨てられます。

以下に、SortKeyリストの形式を示します。

  SortKey1, SortKey2, ..., SortKeyn

リストでは、各カンマ文字の後に、スペース文字が必要です。

個々のSortKey文字列の形式は、次のいずれかです。

  • database_name.table_name.column_name
  • spool_number.column_name

スプール番号は、テーブル情報が使用できない場合にはdatabase.table名の代わりに使用されます。

GeogInfo リレーションの地理的な構成を記述します。
  • Aは、リレーションが1つのAMPで複製されることを意味する(AllRowsOneAMP)。
  • Dは、リレーションがすべてのAMPで複製されることを意味する。
  • Hは、リレーションがAMP間でハッシュ分散されることを意味する。
  • Lは、リレーションがローカルに構築されることを意味する。
Cached リレーションをキャッシングされたかどうかを記述する。
  • Fの場合、リレーションはキャッシングされていない。
  • Tの場合、リレーションはキャッシングされた。
SyncScan リレーションが同期スキャンに適格かどうかを記述する。
  • Fの場合、リレーションは同期スキャンに適格ではない。
  • Tの場合、リレーションは同期スキャンに適格。
Cardinality リレーションの見積もりカーディナリティ。
Confidence 見積もりカーディナリティの信頼性レベルを記述する。
  • Hは、高い信頼性。
  • Iは、インデックス結合の信頼性。
  • Lは、低い信頼性。
  • Nは、信頼性なし。
MaxCardinality リレーションの見積もり最大カーディナリティ。
ViewName リレーションにアクセスするために問合わせが使用するビューの名前(存在する場合)。
TableDDL 獲得されたリレーションのSQL DDLテキスト。

テキストが上限の20,000文字を超えると、QryRelXテーブルにオーバーフローします。以下のオーバーフローおよびQryRelXを参照してください。

TableName リレーションの非別名。

上記の名前と比較してください。

PartitionInfo テーブルまたはスプールに行パーティション プライマリ インデックスが存在するかどうかを識別する。
  • Fの場合、リレーションには行パーティション プライマリ インデックスがない。
  • Tの場合、リレーションには行パーティション プライマリ インデックスがある。
Overflow QryRelXにオーバーフローしたクエリー テキストが格納されるかどうかを指定する。
  • Fの場合、オーバーフローはない。

    これは、デフォルトです。

  • Tの場合、オーバーフロー テキストはQryRelXテーブルに格納されている。
Complete Relationが完全なリレーションDDLを格納するか、切り捨てられたリレーションDDLを格納するのかを識別する。
  • Fの場合、テーブルDDLは切り捨てられている。

    格納される文字数の上限は、DUMP EXPLAINおよびINSERT EXPLAIN文のLIMIT句によって制御されます(<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照)。

    DUMP EXPLAINまたはINSERT EXPLAINによって限界が指定されないと、DDLすべてが獲得され、格納されます。

  • Tの場合、テーブルDDLは完全に格納されている。

    オーバーフローがある場合(Overflow属性の値がTになる)、QryRelXテーブルに格納されます(QryRelXを参照)。

Version 計画が獲得された時点でのテーブルのバージョン番号を格納する。

分析用に獲得されたスキーマ情報に加えられた変更が適切に処理されたことを確認するために使用します。

SpoolCompressedAllowed ターゲットのスプール ファイルに圧縮列を含めることができるかどうかを識別する。
  • Fの場合、スプールには圧縮列を含めることができない。
  • Tの場合、スプールには圧縮列を含めることができる。
SpoolSize このリレーションのスプール ファイルのサイズ(バイト単位)。

そのリクエストのスプールがない場合、列はnullになる。

RelationAttributeType 問合わせにより、パーティション テーブルの1つ以上のパーティションをアクセスしたことを示す。

行パーティション化されたテーブルのリレーションに対して行が書き込まれるたびに、Teradata Databaseが文字列NUMOFPARTをRelationAttributeTypeに書き込みます。

Teradata Databaseが問合わせの行パーティションにアクセスしない場合、RelationAttributeTypeはNULLです。

この列の関数は、QCD.QuerySteps.StepAttributeTypeの関数に類似しています。

RelationAttributeValue クエリーによってアクセスされる行パーティションの数が0より大きい場合のアクセスされるパーティションの数。

Teradata Databaseが問合わせの行パーティションにアクセスしない場合、RelationAttributeValueはNULLです。

この列の関数は、QCD.QuerySteps.StepAttributeValueの関数に類似しています。

TemporalProperty リレーションのテンポラル属性。
  • Bは、二重テンポラル リレーション。
  • Nは、テンポラル リレーションではない。
  • Sは、システムのバージョン情報が設定されたsystem-timeテーブル。
  • Tは、処理期間リレーション。
  • Uは、二重テンポラル(システムのバージョン情報が設定されたsystem-timeおよびvalid-time)テーブル。
  • Vは、有効期間リレーション。
  • Wは、system-time派生PERIOD列を含むがシステムのバージョン情報が設定されていない非テンポラル テーブル。
  • Xは、system-time派生PERIOD列を含むがシステムのバージョン情報が設定されていないvalid-timeテンポラル テーブル。
ResultTemporalProperty 結果リレーションのテンポラル属性。
  • Bは、二重テンポラル リレーション。
  • Nは、テンポラル リレーションではない。
  • Tは、処理期間リレーション。
  • Vは、有効期間リレーション。
NumCombinedPartitions リレーションに対する静的なパーティション排除がある場合や、リレーションに列パーティションがある場合、NumCombinedPartitionsには、排除された組み合わせパーティション数ではなく、アクセスされた組み合わせパーティション数が含まれる。

その他の場合には、列はnullになる。

NumContexts パーティションを持つリレーションのパーティションに同時にアクセスするための、割り当てられるコンテキストの数(存在する場合)

その他の場合には、列はnullになる。

NumCPReferences 列パーティション化されたリレーションで参照される列パーティションの数。

その他の場合には、列はnullになる。