このセットの例として、次のビュー定義を考えます。
CREATE VIEW v1 (i, j) AS ( SELECT x+1, b+1 FROM test); CREATE VIEW v3 (i, j) AS (SELECT CASE WHEN z1='abc' THEN 1 ELSE 0, a1+1 FROM test1);
Vantageは、subqueryに関数または式が指定されている場合には、それがどのような種類であっても、特定の列セットまたはインデックスの統計をコピーしません。これは、そのようなデータ操作は、これらの例が示すように、結果的に列セットまたはインデックス値のセットをソース リレーションとは異なる形に変換することになるためです。
例1
この例の場合、Vantageは、統計をコピーしません。これは、ビューv1は基礎となるtest表から列式を選択しているため、結果としてのターゲット テーブルt1の列がtestの列と異なるためです。
CREATE TABLE t1 AS (SELECT * FROM v1) WITH NO DATA AND STATISTICS;
例2
この例の場合、Vantageは、統計をコピーしません。これは、ビューv1は基礎となるtest表から列式を選択しているため、結果としてのターゲット テーブルの列データがtestの列と異なる可能性があるためです。ゼロ統計がコピーできないことにも注意が必要です。
CREATE TABLE t5 AS (SELECT * FROM v1) WITH DATA AND STATISTICS;
例3
この例では、Vantageは統計をコピーしません。これは、ビューv3はCASE式を使用して定義されているため、結果としてのターゲット テーブルの列データがtest1の列と異なる可能性があるためです。
CREATE TABLE t5 AS (SELECT * FROM v3) WITH DATA AND STATISTICS;
例4
この例では、Vantageは統計をコピーしません。これは、subqueryで指定された簡単な算術式によってターゲット テーブルのデータがtestの列と異なってしまうためです。
CREATE TABLE t5 (c1, c2) AS (SELECT x+1, y+1 FROM test) WITH DATA AND STATISTICS;
例5
この例では、Vantageは統計をコピーしません。これは、subqueryで指定された簡単な算術式によってターゲット テーブルのデータがtest1の列と異なってしまうためです。
CREATE TABLE t5 (c1, c2) AS (SELECT (k1/(y1+2)), b1+7 FROM test1) WITH DATA AND STATISTICS;
例6
この例では、Vantageは統計をコピーしません。これは、subqueryで指定された簡単な算術式によってターゲット テーブルのデータがtestの列と異なってしまうためです。
CREATE TABLE t5 (a, b) AS (SELECT x+1 AS x, y+1 AS y FROM test) WITH DATA AND STATISTICS;