Vantageは、subqueryの選択リストで指定したインデックス列の相対順序がソース テーブルの順序と異なる場合でも、複数列ゼロ統計およびゼロ複合インデックス統計をコピーします。
例1: 単一列統計のコピー
この例では、Vantageはtestの列xおよびaの単一列統計を、t2の列aおよびcのゼロ単一列統計としてコピーします。(a,b)の複数列統計はt2の列(b,c)のゼロ複数列統計としてコピーされません。これは、t2の列bおよびcの順序がtestの列bおよびaの順序と異なるためです。
CREATE TABLE t2 (a, b, c) AS (SELECT x AS colA, b, a (AS colC) FROM test) WITH NO DATA AND STATISTICS;
Vantageによりコピーされるゼロ統計 | コピー元となるソース テーブルの列セット | コピー先となるターゲット テーブルの列セット | 理由 |
---|---|---|---|
単一列 | x | a | ターゲット テーブルt2の列aは、ソース テーブルtestの列xと完全に相似であるため。 |
y | なし | ソース テーブルの列yと相似の列がターゲット テーブルt2に存在しないため。 | |
単一列NUPI | a | c | ターゲット テーブルt2の列cは、ソース テーブルtestの列aと完全に相似であるため。 |
複数列 | (a,b) | なし | ターゲット テーブルt2に定義された列bと列cの順序が、ソース テーブルtestに定義された列bと列aの順序と異なるため。 |
(x,y,z) | ソース テーブルt2に定義した複数列インデックス セットには、ソース テーブルtestの(x,y,z)および(x,y)と相似の列セットが存在しないため。 | ||
複数列NUSI | (x,y) | なし | ソース テーブルt2に定義した複数列インデックス セットには、ソース テーブルtestの(x,y,z)および(x,y)と相似の列セットが存在しないため。 |
例2: 単一列統計のコピー
この例では、Vantageはtest1の単一列統計をt2の列a、b、およびcのゼロ単一列統計としてコピーします。(x1,y1)のインデックス統計はt2の列(a,b)のゼロ インデックス統計としてコピーされません。これは、t2の列aおよびbの順序がtest1の列x1およびy1の順序と異なるためです。
CREATE TABLE t2 (a, b, c) AS (SELECT k1 AS colA, y1 AS colB, z1 AS colC) FROM test1) WITH NO DATA AND STATISTICS INDEX(a, b);
Vantageによりコピーされるゼロ統計 | コピー元となるソース テーブルの列セット | コピー先となるターゲット テーブルの列セット | 理由 |
---|---|---|---|
単一列 | k1 | a | ターゲット テーブルt2の新しい列は、ソース テーブルtest1の既存の列と完全に相似であるため。 |
y1 | b | ||
z1 | c | ||
|
なし | ソース テーブルのこれらの列と相似の列が、ターゲット テーブルt2の定義に存在しないため。 | |
単一列NUSI | z1 | なし | ソース テーブルの列z1に相似である列cに対して、単一列NUSIがソース テーブル中に定義されておらず、列セット(a,b)に対して複数列NUSIが定義されているため。 ターゲット テーブルt2の(a,b)に対するNUSIは、統計がコピーされずに定義されています。これは、それらと相似なソース テーブルtest1の列セット(k1,y1)に対して統計が収集されていないためです。 |
複数列NUPI | (x1,y1) | なし | Subqueryの選択リストで指定されたインデックス列の順序が、test1のインデックス列の順序と異なるため。 |