17.05 - 例: すべての列の統計のコピー - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-175K-JPN
Language
日本語 (日本)

Vantageは、以下のすべてのシナリオで統計をコピーします。これは、基礎となるインデックスおよび列データが、これらの例が示すように、コピー時に変更されないためです。

例1

この例の場合、Vantageでは、ソース テーブルtest1のx1およびy1の列の統計を、ターゲット テーブルt6の列aおよびbにコピーします。システムでは、ソース テーブルの列セット(x1, y1)の複合インデックスに関する統計を、ターゲット テーブルt6の列セット(a, b)の複数列統計としてコピーします。これは、t6のその列セットに対してインデックスが明示的に定義されていないためです。

    CREATE TABLE t6 (a, b, c) AS (SELECT x1, y1, z1 (AS colC)
                                  FROM test1) 
    WITH DATA AND STATISTICS;

テーブルの影付きのセルは、ソース テーブルの列セットと直接対応しない場合に、システムがどこに統計をコピーするかを示します。

コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 x1 a ソース テーブルtest1の列x1および列y1が、ターゲット テーブルt6の列aおよび列bに直接マップされます。
y1 b
単一列NUSI z1 c ソース テーブルtest1の列z1が、ターゲット テーブルt6の列cに直接マップされます。
複数列 なし (a, b) ソース テーブルtest1の列x1および列y1は、ターゲット テーブルt6の列aおよび列bに同じ順序で直接マップされるため、test1の(x1,y1)に関する複数列統計をt6の(a,b)に関する複数列統計として使用できます。
複数列NUPI (x1, y1) なし

例2

この例では、Vantageは以下の列とインデックス統計をコピーします。

    CREATE TABLE t6 (a, b, c) AS (SELECT x AS colA, b, a (AS colC)
                                  FROM test) 
    WITH DATA AND STATISTICS;
コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 y なし 列yには、テーブルt6に相似する列が存在しません。
x a テーブルt6の列aは、テーブルtestの列xと完全に相似です。
a c テーブルtestのNUPI列aで収集されたインデックス統計は、テーブルt6の列cの列統計として使用できます。
単一列NUPI a なし

testのインデックス列aの統計は、t6の非インデックス列cにコピーされます。

NUPIがターゲット テーブルt6に定義されていません。

ただし、ソース テーブルtestの列aに対するNUPI用に収集された統計は、表t6の列c用の列統計として使用できます。

複数列 (a, b) なし ソース テーブルtestの列aおよび列bと相似の列が、ターゲット テーブルt6では異なる順序で定義されています。このため、それらの複数列統計を新しい列セットに使用できません。
複数列NUSI (x,y) なし 列yには、テーブルt6に相似する列が存在しません。

例3

この例では、Vantageは以下の統計をコピーします。

    CREATE TABLE t6 (a, b, c) AS (SELECT k1 AS colA, y1 AS colB, 
                                         z1 AS colC)
                                  FROM test1) 
    WITH DATA AND STATISTICS;
コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 k1 a ターゲット テーブルt6の列aおよび列bが、ソース テーブルtest1の列k1および列y1と完全に相似です。

テーブルtest1の列k1、y1、およびz1の各単一列統計は、それぞれt6の単一列a、b、およびcにコピーされます。

y1 b
単一列NUSI z1 c NUSIがターゲット テーブルt6に定義されていません。

ただし、ソース テーブルtest1の列z1に対するインデックスとして収集された統計は、ターゲット テーブルtest1の列cに直接マップされます。

複数列NUPI (x1,y1) なし ソース テーブルtest1の列x1と相似の列が、ターゲット テーブルt6に存在しません。

例4

この例の場合、Vantageは、x1およびy1の単一列統計をaおよびbにコピーし、インデックス統計を列セット(a, b)にコピーします。

    CREATE TABLE t6 (a, b) AS (SELECT x1 AS colB, y1 (AS colC)
                               FROM test1) 
    WITH DATA AND STATISTICS 
    PRIMARY INDEX (a, b);
コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 x1 a ターゲット テーブルt6の列aおよび列bが、ソース テーブルtest1の列x1および列y1と相似です。
y1 b
単一列NUSI z1 なし ソース テーブルtest1の列z1と相似の列が、ターゲット テーブルt6に存在しません。
複数列NUPI (x1, y1) (a, b) ターゲット テーブルt6の列aおよび列bが、ソース テーブルtest1の列x1および列y1と相似であり、test1と同じ順序でt6にも定義されています。

例5

この例の場合、システムでは、ソース テーブルtestからターゲット テーブルt6に列xの統計だけをコピーします。

    CREATE TABLE t6 AS (SELECT * 
                        FROM (SELECT x
                              FROM test) AS d1) 
    WITH DATA AND STATISTICS;
コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 x d1 ソース テーブルtestの列xが、入れ子の副問合わせによって限定された唯一の列です。
単一列NUPI a なし ソース テーブルの列aと相似の列が、ターゲット テーブルt6に存在しません。
複数列
  • (a,b)
  • (x,y,z)
なし ターゲット テーブルt6の1つの列のみが、ソース テーブルtestの列xと相似です。
複数列NUSI (x, y) なし ターゲット テーブルt6の1つの列のみが、ソース テーブルtestの列xと相似です。

例6

この例の場合、システムでは、すべての利用可能な単一列統計、複数列統計、およびインデックス統計をテーブルtest1からテーブルt6にコピーします。

    CREATE TABLE t6 AS test1
    WITH DATA AND STATISTICS;
コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 x1 x1 ソース テーブルtest1のすべての列とその統計が、ターゲット テーブルt6の(同じ名前の)同じ列にコピーされます。
単一列 y1 y1 ソース テーブルtest1のすべての列とその統計が、ターゲット テーブルt6の(同じ名前の)同じ列にコピーされます。
単一列 k1 k1 ソース テーブルtest1のすべての列とその統計が、ターゲット テーブルt6の(同じ名前の)同じ列にコピーされます。
単一列NUSI z1 z1 ソース テーブルtest1のすべての列とその統計が、ターゲット テーブルt6の(同じ名前の)同じ列にコピーされます。
複数列NUPI (x1, y1) (x1, y1) ソース テーブルtest1のすべての列とその統計が、ターゲット テーブルt6の(同じ名前の)同じ列にコピーされます。

例7

この例の場合、システムでは、すべての利用可能な単一列統計、複数列統計、およびインデックス統計をテーブルtestからテーブルt6にコピーします。

testの列セット(x, y, z)に関して収集された統計が、テーブルt6の同じ列セットに対して定義された新しい複数列NUPIに使用されるようになりました。

testの(x, y, z)に対して定義された複数列統計は、テーブルt6の複数列NUPIとして定義された同じ列セットにコピーされます。

    CREATE TABLE t6 AS test
    WITH DATA AND STATISTICS 
    PRIMARY INDEX (x, y, z);

テーブルの影付きのセルは、ソース テーブルの列セットと直接対応しない場合に、システムがどこに統計をコピーするかを示します。

コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 x x ソース テーブルtestの列xおよび列yと相似で同名の列がターゲット テーブルt6に存在します。
単一列 y y ソース テーブルtestの列xおよび列yと相似で同名の列がターゲット テーブルt6に存在します。
単一列 なし a システムは、ソース テーブルtestのNUPI列aを、非インデックス列aとしてターゲット テーブルt6にコピーします。

ソース テーブルtestのその単一列のインデックス統計は、単一列の非インデックス統計として、ターゲット テーブルt6にコピーされます。

単一列NUPI a なし システムは、ソース テーブルtestのNUPI列aを、非インデックス列aとしてターゲット テーブルt6にコピーします。

ソース テーブルtestのその単一列のインデックス統計は、単一列の非インデックス統計として、ターゲット テーブルt6にコピーされます。

複数列 (a, b) (a, b) ソース テーブルとターゲット テーブルの列が相似であり、それぞれのテーブルに同じ順序で定義されています。
複数列 (a, b) (x,y) ソース テーブルの各列とターゲット テーブルの各列が相似であり、両方のテーブルで同じ順序で定義されています。

システムは、ソース テーブルtestの複数列インデックス統計を、複数列統計として、ターゲット テーブルt6にコピーします。

複数列NUSI (x, y)   ソース テーブルの各列とターゲット テーブルの各列が相似であり、両方のテーブルで同じ順序で定義されています。

システムは、ソース テーブルtestの複数列インデックス統計を、複数列統計として、ターゲット テーブルt6にコピーします。

複数列 (x,y,z)   ソース テーブルの各列とターゲット テーブルの各列が相似であり、両方のテーブルで同じ順序で定義されています。

システムは、ソース テーブルtestの複数列統計を、複数列インデックス統計として、ターゲット テーブルt6にコピーします。

複数列NUPI   (x, y, z) ソース テーブルの各列とターゲット テーブルの各列が相似であり、両方のテーブルで同じ順序で定義されています。

システムは、ソース テーブルtestの複数列統計を、複数列インデックス統計として、ターゲット テーブルt6にコピーします。

例8

この例の場合、システムでは、テーブルtestの利用可能なすべての単一列統計、複数列統計、およびインデックス統計をコピーします。

    CREATE TABLE t6 AS test
    WITH DATA AND STATISTICS 
    PRIMARY INDEX (x, y, z) 
    INDEX (a, b);

テーブルの影付きのセルは、ソース テーブルの列セットと直接対応しない場合に、システムがどこに統計をコピーするかを示します。

コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 x x ソース テーブルtestの列xおよび列yと相似であり、同名の列がターゲット テーブルt6に存在します。
単一列 y y ソース テーブルtestの列xおよび列yと相似であり、同名の列がターゲット テーブルt6に存在します。
単一列   a システムは、ソース テーブルtestのNUPI列aを、非インデックス列aとしてターゲット テーブルt6にコピーします。

ソース テーブルtestのその単一列のインデックス統計は、単一列の非インデックス統計として、ターゲット テーブルt6にコピーされます。

単一列NUPI a   システムは、ソース テーブルtestのNUPI列aを、非インデックス列aとしてターゲット テーブルt6にコピーします。

ソース テーブルtestのその単一列のインデックス統計は、単一列の非インデックス統計として、ターゲット テーブルt6にコピーされます。

複数列 (x, y, z)   ソース テーブルtestの列セット(x,y,z)に関する複数列統計は、ターゲット テーブルt6の同じ列セットの複数列NUPIの複数列インデックス統計としてコピーされます。
複数列 (a,b)   ソース テーブルtestの列セット(a,b)に関する複数列統計は、ターゲット テーブルt6の同じ列セットの複数列NUSIの複数列インデックス統計としてコピーされます。
複数列   (x,y) ソース テーブルtestの列セット(x,y)に関する複数列NUSI統計は、ターゲット テーブルt6の同じ列セットに関する複数列非インデックス統計としてコピーされます。
複数列NUPI   (x, y, z) ソース テーブルtestの列セット(x,y,z)に関する複数列統計は、ターゲット テーブルt6の同じ列セットの複数列NUPIの複数列インデックス統計としてコピーされます。
複数列NUSI (x, y) (a, b) ソース テーブルtestの列セット(x,y)に関する複数列NUSI統計は、ターゲット テーブルt6の同じ列セットに関する複数列非インデックス統計としてコピーされます。

ソース テーブルtestの列セット(a,b)に関する複数列統計は、ターゲット テーブルt6の同じ列セットの複数列NUSIの複数列インデックス統計としてコピーされます。

testで収集された複数列統計(x, y, z)は、t6の同じ列セットに対して定義された新しい複数列NUPIに使用される一方、testで収集された(a, b)に関する複数列統計は、t6の同じ列セットに対して定義された新しい複数列NUSIに使用されます。

例9

この例の場合、システムではすべての単一列統計、複数列統計、および複数列NUSI(x, y)のインデックス統計をコピーします。

    CREATE TABLE t6 AS (SELECT *
                        FROM test) 
    WITH DATA AND STATISTICS 
    PRIMARY INDEX(x, y);

テーブルの影付きのセルは、ソース テーブルの列セットと直接対応しない場合に、システムがどこに統計をコピーするかを示します。

コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 x x ソース テーブルtestの列xと相似で同名の列がターゲット テーブルt6に存在します。
単一列 y y ソース テーブルtestの列yと相似で同名の列がターゲット テーブルt6に存在します。
単一列   a システムは、ソース テーブルtestのその単一列のインデックス統計を、単一列の非インデックス統計としてターゲット テーブルt6にコピーします。
単一列NUPI a   システムは、ソース テーブルtestのNUPI列aを、非インデックス列aとしてターゲット テーブルt6にコピーします。
複数列 (x, y, z) (x, y, z) システムは、各列が両方の列セットに対して同一に定義されているため、両方の列セットに関する複数列統計をソース テーブルtestからターゲット テーブルt6に直接コピーします。
複数列 (a,b) (a,b) システムは、各列が両方の列セットに対して同一に定義されているため、両方の列セットに関する複数列統計をソース テーブルtestからターゲット テーブルt6に直接コピーします。
複数列NUPI   (x, y) システムは、ソース テーブルtestの複合NUSI列セット(x,y)に関する複数列インデックス統計を、ターゲット テーブルt6の同じ列の複合NUPIに関する複数列インデックス統計としてコピーします。
複数列NUSI (x, y)   システムは、ソース テーブルtestの複合NUSI列セット(x,y)に関する複数列インデックス統計を、ターゲット テーブルt6の同じ列の複合NUPIに関する複数列インデックス統計としてコピーします。

testで単一列xおよびyに関して収集された統計と、列セット(x, y, z)および(a, b)に関して収集された統計は、t6の同じ列セットに平行的にコピーされる一方、testで(x, y)の複数列NUSIに関して収集された統計は、t6の同じ列セットに対して定義された新しい複合NUPIに使用されます。

testに定義された複数列NUSIは、新しいテーブルt6には定義されていませんが、システムではその統計をt6の同じ列セットに定義された新しい複数列NUPIで使用するためにコピーします。

例10

この例では、システムはtestのすべての単一列統計、複数列統計、およびインデックス統計をt6にコピーします。

    CREATE TABLE t6 AS test
    WITH DATA AND STATISTICS;
コピーされる統計 ソース テーブルの列セット ターゲット テーブルの列セット 説明
単一列 x x ソース テーブルとターゲット テーブルが相互に一致しています。
y y
単一列NUPI a a
複数列 (x, y, z) (x, y, z)
(a,b) (a,b)
複数列NUSI (x, y) (x, y)