USING句のオプション設定は、統計の収集対象になる列ごと、インデックスごと、または複数列セットごとに保持され、統計の再収集時に適用されます。
同じUSINGオプションを続けて使用する場合は、統計の再収集時にUSINGオプションを指定しないでください。前回のオプションと異なる場合は、再収集時にUSINGオプションを指定すると、前回のオプションをリセットして、新しく指定されたオプションで最初からやり直します。
最適化ルーチンにより新しいUSINGオプションを指定したリクエストの再収集を省略されることになると、DBC.StatsTblディクショナリ行が更新され、統計を再収集することなく、それらの新しいオプションを保持します。DBC.StatsTbl.LastAlterTimeStamp列は、オプションの変更を反映するように更新されますが、DBC.StatsTbl.LastCollectTimeStampは変更されず、前回の統計収集のタイムスタンプが反映されます。
次のリクエストでは、o_orderkeyとo_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_orderkeyとo_orderdatetimeに対して保存してあるUSINGオプションを使用して、統計を再収集します。
COLLECT STATISTICS ON orders;
次のリクエストでは、o_orderkeyとo_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;