Teradata Databaseでは、地理空間データ列への非固有セカンダリ インデックス(NUSI)作成をサポートしています。これらのインデックスは、Hilbert R-tree構造を使用して内部に実装されています。地理空間インデックスを使用すると、単一テーブル述部または結合述部を含む地理空間問合わせのパフォーマンスが大幅に向上します。このとき次に示す地理空間メソッドを使用します。
- MBB_Filter
- MBR_Filter
- ST_3DDistance
- ST_Contains
- ST_Crosses
- ST_Distance
- ST_Equals
- ST_Intersects
- ST_Overlaps
- ST_Touches
- ST_Within
- Within_MBB
- Intersects_MBB
- ST_Relate(述部が上記のメソッドの1つを実行するように構成されている場合)
地理空間インデックスと地理空間述部により地理空間問合わせの速度を向上する方法の詳細については、地理空間述部および最適化ルーチンを参照してください。
地理空間データ列でインデックスを作成するために使用する構文は、あらゆるNUSIを作成するCREATE INDEXおよびCREATE TABLEで使用する構文と同じで、次に示す制限があります。
- 地理空間NUSIは、単一列インデックスである必要があります。
- 地理空間NUSIは、結合インデックスで使用されている地理空間列には作成できません。
- すべてのキーワードが地理空間インデックスで使用できるわけではありません。
- 地理空間インデックスでは、ORDER BY VALUES句およびORDER BY HASH句はサポートされていません。
- 地理空間インデックスは、グローバル一時テーブルまたは揮発表では作成できません。したがって、地理空間インデックスではTEMPORARYキーワードがサポートされていません。
- 地理空間インデックスを3Dデータ用に作成できますが、z座標は無視されます。x座標とy座標のみに基づくジオメトリのMBRを使用して、インデックスを作成します。
- 地理空間インデックスの作成は、x座標とy座標に基づくため、インデックスが作成されている3D地理空間オブジェクトがz軸に積み重なり、x軸とy軸にほとんど分布がない場合、インデックスの作成によってパフォーマンスが低下することがあります。
インデックスの詳細については、<Teradata Vantage™ - SQLデータ定義言語-構文規則および例、B035-1144>と<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。Hilbert R-tree構造についての詳細は、<Teradata Vantage™ - SQLリクエストおよびトランザクション処理、B035-1142>を参照してください。