例: 列パーティション テーブルまたは結合インデックスに対するSHOW TABLE - Teradata Database - Teradata Vantage NewSQL Engine - 例: 列パーティション テーブルまたは結合インデックスに対するSHOW TABLE、SHOW TABLE SQL文

Teradata Vantage™ SQLデータ定義言語 構文規則および例

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

列パーティション テーブルに対するSHOW TABLEリクエストまたは列パーティション結合インデックスに対して実行依頼されたSHOW JOIN INDEXリクエストによって返されるレポートには、次のルールが適用されます。

パーティション テーブルまたはパーティション結合インデックスの場合、パーティション レベルに列パーティションが含まれているか、または列パーティション レベルに定義されたパーティションの数がそのレベルのパーティションの最大数より少なく、そのレベルが行パーティションを含む最初のレベルではないとき、Teradata Databaseはパーティション レベルについてのADDオプションを組み込みます。オブジェクトに行パーティションしかなく、パーティション レベルについてのADDオプションが指定されておらず、現在定義されている行パーティションの数がそのレベルの行パーティションの最大数と同じであるとき、出力は行パーティション テーブルまたはパーティション結合インデックスの場合と同様です。

ADDオプションのルールは次のとおりです。

  • どの行パーティション レベルについても、ADD 0は報告されません。
  • 最初の行パーティション レベルについてADDは報告されません。
  • 定義されたパーティションの数がパーティションの最大数より少なく、最初の行パーティション レベルではない行パーティション レベルについては、ADDが報告されます。
  • 列パーティション レベルについては、ADD 0が指定されていても、ADDが報告されます。

ADDが報告される場合、その値はそのパーティション レベルのパーティションの最大数から現在定義されているパーティションの数を引いた数と同じです。

列パーティションのテーブルまたは列パーティション結合インデックスの場合、PARTITION BY句にCOLUMN句が組み込まれることを除いて出力は同じです。グループ化が組み込まれるのはCOLUMN句であって、テーブルの列定義リストでも結合インデックスの選択リストでもありません。COLUMN句の列グループ化は、次のように報告されます。

すべての列パーティションが単一列パーティションであり、システム定義のCOLUMNまたはROW形式が指定されていてNO AUTO COMPRESSは指定されていない場合、Teradata DatabaseはCOLUMN句の後に続く列グループ化を報告しません。

複数列パーティションである1を除くすべての列パーティションが単一列パーティションであり、すべての列パーティションにシステム定義のCOLUMNまたはROW形式が指定されていてNO AUTO COMPRESSが指定されていない場合、Teradata DatabaseはCOLUMN句の後に続く以下の項目の文字の分だけ短く報告します。

  • COLUMN ALL BUT ((multicolumn_partition_column_list_separated_by_commas_and_ordered_by_field_ID ))

    または

  • COLUMN (columns_in_single-column_partitions_separated_by_commas_and_ordered_by_field ID )

以下に例を示します。

     COLUMN ALL BUT ((d, p, z))
     COLUMN (a, b, c, g)

上記の項目のようにパーティション化されておらず、列パーティションの少なくとも1つ(ただしすべてではない)が単一列パーティションであり、そのパーティションにシステム定義のCOLUMNまたはROW形式が指定されていて、NO AUTO COMPRESSオプションは指定されていない場合、システム定義のCOLUMNまたはROW形式が指定されNO AUTO COMPRESSオプションは指定されていない単一列パーティションを除くすべての列パーティションがCOLUMN句の後に組み込まれます。

Teradata Databaseは、カンマで区切られフィールドID順にソートしたエントリをともなう異なる形式を報告します。

  • COLUMN ALL BUT (single_columns_list_with_options )

    または

  • COLUMN ALL BUT (multiple_columns_list_with_options )

    または

  • COLUMN ALL BUT (single_columns_list_with_options , (multiple_columns_list_with_options))

以下に例を示します。

     COLUMN ALL BUT (ROW d, (i, t), k NO AUTO COMPRESS, 
                     COLUMN(m, s, u, v))
     COLUMN ALL BUT (COLUMN(j, m, o))
     COLUMN ALL BUT (ROW(e, j, z) NO AUTO COMPRESS)

上記以外の場合、Teradata Databaseは以下のいずれかの形式で、各項目をカンマで区切り、各列パーティションの最初の列のフィールドID順にソートして報告します。Teradata Databaseは、各列パーティション内でも項目をパーティション列のフィールドID順にソートします。

  • COLUMN (single_columns_list_with_options )

    または

  • COLUMN (multiple_columns_list_with_options )

    または

  • COLUMN (single_columns_list_with_options, (multiple_columns_list_with_options ))

以下に例を示します。

     COLUMN (ROW d, (i, t), k NO AUTO COMPRESS, COLUMN(m, s, u, v))

この例は、次のように定義された列パーティション テーブルt1を作成します。

     CREATE TABLE t1 (
       a INTEGER, 
       b INTEGER, 
       c INTEGER, 
       d INTEGER, 
       e INTEGER, 
       f INTEGER, 
       g INTEGER, 
       h INTEGER,
       i INTEGER, 
       j INTEGER, 
       k INTEGER, 
       l INTEGER, 
       m INTEGER, 
       n INTEGER, 
       o INTEGER, 
       p INTEGER, 
       q INTEGER, 
       r INTEGER,
       s INTEGER,
       t INTEGER, 
       u INTEGER, 
       v INTEGER, 
       w INTEGER, 
       x INTEGER, 
       y INTEGER, 
       z INTEGER)
     NO PRIMARY INDEX 
     PARTITION BY COLUMN ALL BUT (a, b, (g, d), ROW(s, t, j), 
                                  h NO AUTO COMPRESS, x) ADD 65509;
 

AutoCompressDefaultの値が2に変更されたとします。t1に対するSHOW TABLEリクエストは、次の情報を返します。

     SHOW TABLE t1;
      *** Text of DDL statement returned. 
      *** Total elapsed time was 1 second.
-----------------------------------------------------------------------
CREATE MULTISET TABLE  user_name.t1 ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO,
MAP = TD_MAP1
(
a INTEGER,
b INTEGER,
c INTEGER,
d INTEGER,
e INTEGER,
f INTEGER,
g INTEGER,
h INTEGER,
i INTEGER,
j INTEGER,
k INTEGER,
l INTEGER,
m INTEGER,
n INTEGER,
o INTEGER,
p INTEGER,
q INTEGER,
r INTEGER,
s INTEGER,
t INTEGER,
u INTEGER,
v INTEGER,
w INTEGER,
x INTEGER,
y INTEGER,
z INTEGER)
NO PRIMARY INDEX
PARTITION BY COLUMN AUTO COMPRESS
  ALL BUT ((d, g), h NO AUTO COMPRESS, ROW(j, s, t)) ADD 65509;

列a、b、およびxは、COLUMN句のグループ化句に含まれません。これらの列は、デフォルトでシステム決定の形式と自動圧縮が指定されている単一列パーティションであるためです。列パーティションと列パーティションの列は、定義リストでの順序と同じ順序になります。