17.00 - 17.05 - 収集に関する指針 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - データベースの管理

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
管理
Publication ID
B035-1093-170K-JPN
Language
日本語 (日本)

COLLECT STATISTICS文を使用して、述部またはGROUP BY句で使用される列の統計を収集します。テーブルのサイズが10%以上増大した場合は、そのテーブルの統計を収集する必要があります。再収集は、最初に統計が収集されたすべての列を対象として実行されます。

タスク 指針
小さなテーブルでの統計収集 テーブルから他の統計を収集しない場合、UPI統計を収集。テーブルは小さい(100行/AMP)。
NUPI統計の収集 NUPIは、
  • 固有度がかなり高く、
  • 通常は結合に使用される、または
  • スキューの状態である
  • 小規模である
すべてのNUSIに関するNUSI統計の収集 最適化ルーチンは、NUSIを範囲スキャン(BETWEEN... AND...)で使用できる。

統計が入手可能で、フル テーブル スキャンよりもデモグラフィックの方が低コストであることが明らかな場合、システムはこの範囲内の値をハッシュするかどうかを決定できる。

統計がないと、インデックスが使用されない可能性があり、場合により、効率的ではないときもNUSIが使用されることがある。

カバーリング(ALLオプション)NUSIに関するNUSI統計の収集 問合わせをカバーリングする目的でSIが定義されている(ALLオプション指定)場合は、インデックス付けされた列がWHERE条件で指定されていなくても、統計の収集について考慮する必要がある。

潜在的なカバーリングNUSIに関する統計を収集することにより、最適化ルーチンはNUSIサブテーブル内の行の合計数を把握できるため、カバーリングによるコスト節約に関する決定の質を高めることができる。

ORDER BYを指定したNUSIに関するNUSI統計の収集 NUSI定義でORDER BYオプションによってソート キーが指定されている場合、その列に関する統計を収集して、最適化ルーチンがNUSIベースのアクセス パスを使用するコストをソート キー列の範囲または等号条件を使用して比較できるようにする。
非インデックス化列の統計を、テーブル選択を使用したすべての、非インデックス化列で収集する 列のグループに関する統計を収集すれば、各列ごとの検索条件または結合条件を含んでいる問合わせに該当する行の数を最適化ルーチンが推定できる。
更新後の統計のリフレッシュ 以下の場合に実行する。
  • 変更された行数が10%を超えた。
  • 行パーティション テーブルの場合、任意のパーティションで10%を超えた。
  • 収集された統計で列のデモグラフィックが変化した。
統計の削除 統計を使用する問合わせがないため、統計が不要になった場合には、削除すべきです。