NUSIを使用したパフォーマンスの最適化 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL関数、式、および述部

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/djk1612415574830.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

コスト効率が良ければ、最適化ルーチンは基本テーブルへのアクセスを伴う(もしくは伴わない)NUSIの走査によってLIKE式を評価します。NUSI使用のコストは、LIKE式の選択性、NUSIサブテーブルのサイズ、またNUSIがカバー インデックスか部分的なカバー インデックスかによって異なります。部分的なカバー インデックスの場合、RowIDスプールをソートするコストも含まれます。NUSIと問合わせカバーの詳細は、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。

最適化ルーチンは、次の条件を満たす場合に、NUSIの使用と全行スキャンの使用について、優れたコスト比較を実行できるようになります。

  • expression文字列の評価の対象となる基本テーブルのプライマリ インデックスとNUSI列の両方について、統計が収集されている。
  • expression文字列が、基本テーブルの統計ヒストグラムの最低1つの間隔において、最頻値か最大値のどちらかである。

次の場合には、LIKE式の処理にVARCHARフィールドを持つNUSIは使用できません。

  • NUSIにVARCHARフィールドが含まれ、そのVARCHARフィールドがNOT LIKE演算で使用される。
  • NUSIにVARCHARフィールドが含まれ、そのVARCHARフィールドが文字列関数で使用される。例えば、d1がVARCHARタイプのNUSI列の場合、次の例は許容されていません。
    d1||‘ab’ LIKE ‘b ab’

また、VARCHARフィールドを持つNUSIは、制約のない集約問合わせに対する部分的なカバー インデックスとして使用することはできません。