例: コピーされない統計 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/spp1591731285373.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

Vantageは、以下のシナリオで統計をコピーしません。

この テーブル定義を考えてみましょう。

     CREATE SET TABLE t1, NO FALLBACK,
       NO BEFORE JOURNAL,
       NO AFTER JOURNAL,
       CHECKSUM = DEFAULT (
         x INTEGER,
         y CHAR(10) CHARACTER SET LATIN CASESPECIFIC,
         z INTEGER)
     UNIQUE PRIMARY INDEX (x);

列x、y、およびzに対する単一列統計が収集されていると仮定します。

例1

この例の場合、部分的なデータのみがコピーされるため、Vantageは、統計をコピーしません。そのようになるのは、yとzのどちらも固有性制約でないため、システムは2つのテーブルの間でカーディナリティの違いが発生する可能性のあるすべての重複行を排除するということです。

     CREATE SET TABLE t9(x, y) AS (SELECT y, z
                                   FROM t1) 
     WITH DATA AND STATISTICS 
     PRIMARY INDEX(x, y);

例2

この例では、Vantageは部分的な統計をコピーします。ソース テーブルの列xおよびzの単一列統計は、それぞれターゲット テーブルの列aおよびcの単一列統計としてコピーされます。

ソース テーブルのyに関する単一列統計は、ターゲット テーブルのターゲット テーブル列bへのコピーには含められません。というのは、bのNOT CASESPECIFIC列属性が、ソース テーブルの列yのデフォルトの列属性と異なるためです。

     CREATE TABLE t9(a, b NOT CASESPECIFIC, c) AS (SELECT x, y, z
                                                   FROM t1) 
     WITH DATA AND STATISTICS;
Vantageによりコピーされる統計 コピー元となるソース テーブルの列セット コピー先となるターゲット テーブルの列セット 理由
単一テーブル x a ソース テーブルt1の列xおよび列zと、ターゲット テーブルt9の列aおよび列cは相似であることから、システムがそれらの単一列統計をコピーするため。
z c
y なし NOT CASESPECIFIC属性を追加することでターゲット テーブルの列bの定義が、ソース テーブルの相似する列yの定義から変更されるため。

例3

この例では、ソース テーブルの列yに対する単一列統計は、ターゲット テーブルの列xへのコピーに適しません。これは、この列のデータがUPPERCASE属性によってターゲット テーブル内で変更されるためです。

     CREATE TABLE t9(x UPPERCASE, y) AS (SELECT y, z
                                         FROM t1) 
     WITH DATA AND STATISTICS;
Vantageによりコピーされる統計 コピー元となるソース テーブルの列セット コピー先となるターゲット テーブルの列セット 理由
単一テーブル z y ソース テーブルt1の列zと、ターゲット テーブルt9の列yは相似であることから、システムがそれらの単一行統計をコピーするため。
y なし UPPERCASE属性を追加することでターゲット テーブルの列xの定義が、ソース テーブルの相応する列yの定義から変更されるため。