単一テーブル結合インデックス列についての統計データ収集の指針 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
ft:locale
ja-JP
ft:lastEdition
2021-03-30
dita:mapPath
ja-JP/jpx1556733107962.ditamap
dita:ditavalPath
ja-JP/jpx1556733107962.ditaval
dita:id
B035-1184
Product Category
Software
Teradata Vantage

統計データを収集する対象となる単一テーブル結合インデックス列を選択する際の指針は、実テーブルやハッシュ インデックスの場合とよく似ています。どんな場合でもまず考慮するべき主要な要素は、統計データがよりよいアクセス計画を提供することになるかどうかということです。よりよいアクセス計画を提供しない場合、削除することを考慮すべきです。収集する統計データによって作成されるアクセス計画がさらに劣ったものになるようであれば、必ずTeradataサポート担当者にそのことを連絡してください。

単一テーブル結合インデックスの統計データを収集することを考慮している場合、インデックスを、結果が格納される特殊な実テーブルと見なすことが役に立つことがあります。たとえば、単一テーブル結合インデックスを使用するアクセス計画では、直接プローブ、フル テーブル スキャン、または範囲スキャンによってアクセスする必要があります。

このことを念頭に置いた上で、どの列に関する統計データを収集するかを決定する際には、次のことを考慮する必要があります。
  • 結合インデックスに含まれる場合は、常に、プライマリ インデックスについての統計データを収集することを考慮します。このことは、基本的な見積もりのためには特に重要です。
  • 特定の統計を収集するのが最良である実行計画のケースについては、次の表を参考にしてください。
    実行計画の一部 統計データを収集する対象
    検索条件キー 検索条件を構成する列セット。
    単一テーブル結合インデックスを別のテーブルと結合すること 結合のカーディナリティを最も正確に見積もるうえで必要な情報を最適化ルーチンに提供するための結合列。
  • 特定の統計を収集するのが最良である単一テーブル結合インデックスのケースについては、次の表を参考にしてください。
    単一テーブル結合インデックスの定義方法 統計データの収集対象
    ORDER BY句を指定する場合 その句で指定される順序キー。
    ORDER BY句を指定せず、実テーブルの順序キーの列セットがcolumn_name_1リストに含まれない場合 インデックスを定義する実テーブルの順序キー。

    これにより最適化ルーチンに、いくつかの重要なベースライン統計データが提供されます。

  • 単一テーブル結合インデックス列がWHERE句に頻繁に出現する場合には、それに関する統計データの収集を考慮します(特に、その列が値順単一テーブル結合インデックスのソート キーである場合)。
  • 単一テーブル結合インデックスが選択リストで複合式を使用して定義され、その複合式がマップ済み基本テーブル列について書かれた述部式でも指定される場合は、式の結合インデックス統計を収集すると、基本テーブルの式を指定するクエリーで、単一テーブルのカーディナリティに関する最適化ルーチンの見積もり能力が向上します。最適化ルーチンはそれらの統計データを直接使用して、クエリーで指定された基本テーブルの列の複合式の選択率を見積もるからです(詳細は、<Teradata Vantage™- SQLリクエストおよびトランザクション処理、B035-1142>を参照)。