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
日本語 (日本)

最適化ルーチンは単一のクエリーについて複数の結合インデックスを使用できます。1つ以上の複数テーブルの結合インデックスを選択することもできますし、結合計画のために付加的な単一テーブル結合インデックスを選択することもできます。 選択される結合インデックスはクエリーの構造によって異なります。最適化ルーチンは、計画のためにすべての適用可能な結合インデックスを選択できない場合があります。 常にEXPLAINレポートを調べて、クエリーのために生成された結合計画のためにどの結合インデックスが使用サポートされていますかを判別する必要があります。 クエリーによって使用されているはずだと思った結合インデックスが結合計画に含まれていなかった場合は、クエリーを再構築してから再度EXPLAINを実行します。

クエリーの中で個々のテーブルの代わりに複数テーブルの結合インデックスを使用した方がクエリー計画の最適化がより図られる場合、結合計画プロセスはその置換を行ないます。 結合計画の中でそうしたテーブルが複数テーブルの結合インデックスに置き換えられるたびに、2つの付加的な単一テーブル結合インデックスの置換も考慮されます。ただし、それらを含めることが、処理する関係のサイズの削減、より良好な分散の実現、追加のカバーの提供につながる場合に限ります。

個々のテーブルごとに置換の可能な結合インデックスの数の制限があるのは、最適化ルーチンが結合計画段階で検索する領域の中の、テーブルの結合の可能性のある組合わせと入替えの数を制限するためです。 こうしたルールがあるので、効果がある場合にのみ最適化が行なわれるようになります。 これは、クエリー計画の生成に費やされる時間は、最適化から得られるパフォーマンス向上分を上回るべきではないことを意味します。