17.10 - ハッシュ インデックスおよび結合インデックスでの統計収集 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

単一テーブル結合インデックスと複数テーブルの結合インデックスは、さまざまな点で基本的に異なるデータベース オブジェクトであり、さまざまな異なる目的のために使用されます。

基本テーブルと複数テーブル結合インデックスの統計は、交換可能なものではありませんです。ただし、基本テーブルおよびベースの非スパース単一テーブル結合インデックスは、互いに統計を継承できます。<Teradata Vantage™- SQLリクエストおよびトランザクション処理、B035-1142>の双方向継承の説明を参照してください。列が基本テーブルと複数テーブルの結合インデックスで定義されている場合は、その列が定義されているオブジェクトごとに統計を収集する必要があります。基本テーブルに格納された列値の統計は、複数テーブルの結合インデックス内で派生した結合結果に格納された同じ列の値の統計とはまったく異なる可能性があります。

複数テーブルの結合インデックスの統計を明示的に収集していない場合には、最適化ルーチンは、その基本となる実テーブルに収集された統計を使用して結合インデックスの統計を派生する試みはありません

複数テーブルの結合インデックス テーブルは、派生テーブルまたは事前結合テーブルを表わす特別な基本テーブルとみなすことができます。たとえば、結合インデックスを伴う実行プランは、テーブルのフル テーブル スキャンまたはインデックス付きスキャンを使用して、結合インデックスにアクセスする必要があります。統計は、最適化ルーチンによるこれらの代替アクセス パスの評価をサポートするために、検索条件キーを使用して収集する必要があります。

実行プランには、結合インデックスと、まだ結合インデックスの一部になっていない別のテーブルとを結合する作業が伴うため、最適化ルーチンによるカーディナリティの評価をサポートするには、これらの結合列の統計を収集すると便利です。

最小でも、結合インデックスのプライマリ インデックスまたは基本AMPインデックスの統計を収集して、結合インデックスのカーディナリティを含むベースライン統計を最適化ルーチンに提供する必要があります。

また、結合インデックスに定義されたセカンダリ インデックスの統計も収集する必要があります。これは、最適化ルーチンが、結合インデックスのスキャンの際の代替アクセス パスを評価する手助けとなります。

特に、列が値順結合インデックスのソート キーである場合には、WHERE句の検索条件に周期的に現れる追加の結合インデックスの列で統計を収集することもあります。

結合インデックスの定義自体に指定された結合列に関する統計を収集することには、ほとんど意味がありません。その代わりに、実テーブルで統計を収集する必要があります。

特に更新の際には、この処理によって、結合インデックスの作成および維持のためのパフォーマンスが向上します。この処理の指針は、通常の結合クエリーでアクセスされるテーブルにおける統計収集の指針と同じです。