1.19 Oracle SpatialによるDatabase In-Memoryのサポート
Spatialでは、Oracle Database In-Memoryテクノロジの使用がサポートされています。
Database In-Memoryで空間表を使用できるようにするには、仮想列を追加してから、SDO_FILTERなどの演算子を使用して、空間索引を使用せずにその表を問い合せます。
空間表は通常の方法で作成します。vz_test1
という既存の2次元の測地表に、次のようにUSER_SDO_GEOM_METADATA
ビューに挿入された、空間列geoloc
が含まれているとします。
INSERT INTO user_sdo_geom_metadata
VALUES(
'vz_test1',
'geoloc',
SDO_DIM_ARRAY(
SDO_DIM_ELEMENT('X', -180, 180, .00000005),
SDO_DIM_ELEMENT('Y', -90, 90, .00000005)),
4326);
COMMIT;
表を変更してインメモリー空間機能を有効にし、空間表にINMEMORY
を指定します。たとえば、前述の2次元の表の場合は次のようになります。
ALTER TABLE vz_test1 INMEMORY INMEMORY SPATIAL(geoloc);
その後、ユーザーはその表に対して問合せを実行できます。たとえば:
SELECT * FROM vz_test1 WHERE SDO_FILTER(geoloc, :x) = 'TRUE';
この手法では、その表がOracle Database In-Memory内にあるため、空間索引は必要ありません。
親トピック: Spatialの概念