例: 最初にUSING句を指定して収集された統計の再収集 - 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

USING句のオプション設定は、統計の収集対象になる列ごと、インデックスごと、または複数列セットごとに保持され、統計の再収集時に適用されます。

同じUSINGオプションを続けて使用する場合は、統計の再収集時にUSINGオプションを指定しないでください。前回のオプションと異なる場合は、再収集時にUSINGオプションを指定すると、前回のオプションをリセットして、新しく指定されたオプションで最初からやり直します。

最適化ルーチンにより新しいUSINGオプションを指定したリクエストの再収集を省略されることになると、DBC.StatsTblディクショナリ行が更新され、統計を再収集することなく、それらの新しいオプションを保持します。DBC.StatsTbl.LastAlterTimeStamp列は、オプションの変更を反映するように更新されますが、DBC.StatsTbl.LastCollectTimeStampは変更されず、前回の統計収集のタイムスタンプが反映されます。

次のリクエストでは、o_orderkeyo_orderdatetimeについての統計を初めて収集します。USINGのオプションは、統計の収集対象になる列ごと、インデックスごと、または複数列セットごとに保持されます。

     COLLECT STATISTICS
     USING SYSTEM SAMPLE AND SYSTEM THRESHOLD
     COLUMN o_orderkey
     ON orders;
     COLLECT STATISTICS
     USING SYSTEM THRESHOLD
     COLUMN o_orderdatetime
     ON orders;

次のテーブル レベルの例では、o_orderkeyo_orderdatetimeに対して保存してあるUSINGオプションを使用して、統計を再収集します。

     COLLECT STATISTICS ON orders;

次のリクエストでは、o_orderkeyo_orderdatetimeに対して保存してあるUSINGオプションを使用して統計を再収集します。これは、前述の例で示したテーブル レベルのCOLLECT STATISTICSリクエストと同等のものです。

     COLLECT STATISTICS COLUMN o_orderkey,
                        COLUMN o_orderdatetime
     ON orders;

次の例では、o_orderkeyに対するUSINGオプションを、システム決定のサンプル割合からユーザー指定による10%の割合にリセットして、統計を再収集します。

システム決定のTHRESHOLDオプションは、有効のままになるので注意してください。

THRESHOLDオプションにより統計の再収集が省略されることになると、統計は再収集されずに、この再収集のディクショナリ行が新しいサンプル割合で更新されます。

     COLLECT STATISTICS
     USING SAMPLE 10 PERCENT
     COLUMN o_orderkey
     ON orders;

次の例では、o_orderdatetimeに対するUSINGオプションを、システム決定のしきい値からユーザー指定のしきい値7日間にリセットして、統計を再収集します。

新しいTHRESHOLDオプションにより統計の再収集が省略されることになると、統計は再収集されずに、この再収集のディクショナリ行が新しいTHRESHOLDオプションで更新されます。

     COLLECT STATISTICS
     USING THRESHOLD 7 DAYS
     COLUMN o_orderdatetime
     ON orders;