プライマリ・コンテンツに移動
Oracle® Spatial and Graph開発者ガイド
12cリリース1 (12.1)
B72470-07
目次へ移動
目次
索引へ移動
索引

前
次

5.1 空間索引の作成

効率的にデータにアクセスするには、バルク・ロードまたはトランザクション・ロードによる空間表へのデータのロードが完了した後で、表内の各ジオメトリ列に対して空間索引(空間Rツリー索引)を作成する必要があります。たとえば、次の文は、すべてのパラメータについてデフォルト値を使用して、territory_idxという空間索引を作成します。

CREATE INDEX territory_idx ON territories (territory_geom)
   INDEXTYPE IS MDSYS.SPATIAL_INDEX;

空間索引の作成のオプションの詳細は、「空間データを索引付けするためのSQL文」CREATE INDEX文を参照してください。

索引作成が完了しなかった場合、索引は無効になるため、DROP INDEX <index_name> [FORCE]文で削除する必要があります。

索引付けされる各ジオメトリ列内では、すべてのジオメトリのSDO_SRID値が同じである必要があります。

空間索引は、2次元、3次元または4次元のデータに作成できます。デフォルトの次元数は2ですが、3次元以上のデータの場合は、sdo_indx_dimsパラメータ・キーワードを使用して、索引を作成する次元数を指定できます。(3次元ジオメトリのサポートの詳細は、「3次元の空間オブジェクト」を参照してください。問合せ要素における次元の様々な組合せのサポートについては、「データおよび索引の次元と空間問合せ」を参照してください。)

Oracle Databaseの自動UNDO管理機能またはPGAメモリー管理機能のいずれかを使用していないか、あるいはこの両方を使用していない場合は、設定不要の可能性がある初期化パラメータ値について、「ロールバック・セグメントおよびソート領域サイズ」を参照してください。自動UNDO管理およびPGAメモリー管理の両方は、デフォルトで有効になっており、これらを使用することをお薦めします。

CREATE INDEX文のtablespaceキーワードで指定された表領域(または、tablespaceキーワードが指定されていない場合はデフォルトの表領域)を使用すると、索引データ表、および内部計算用に作成されたいくつかの一時表の両方が保持されます。WORK_TABLESPACEを表領域として指定すると、一時表は作業表領域に格納されます。

1,000,000行を超える大規模な表では、内部ソート操作を実行する場合に一時表領域が必要です。この一時表領域のサイズは、最大値を1GBとして、100×n バイト(n は表の行数)にすることをお薦めします。

空間索引の作成に必要な領域を推定するには、SDO_TUNE.ESTIMATE_RTREE_INDEX_SIZEファンクション(「SDO_TUNEパッケージ(チューニング)」を参照)を使用します。

この項には次のトピックも含まれます。