공간 인덱스

Tibero Spatial에서는 공간 질의 성능 향상을 위해 RTREE 방식으로 구현된 공간 인덱스를 제공합니다. 좌표 계에 따라 평면 좌표계, 회전타원체 좌표계에 대한 인덱스를 제공합니다.

공간 인덱스 생성

공간 인덱스 생성 방법과 제약에 대해서 설명합니다.

  • 사용법

CREATE INDEX index_name on [schema_name.]
             table_name ON col_name RTREE
항목
설명

index_name

생성할 공간인덱스의 이름

schema_name

인덱스를 생성할 대상 테이블의 소유자.

table_name

인덱스를 생성할 대상 테이블을 설정

col_name

  • 인덱스를 생성할 대상을 설정

  • 컬럼은 GEOMETRY TYPE이어야 함

RTREE

RTREE 인덱스로 생성함을 의미하는 예약어를 설정합니다.

  • 예제

SQL>CREATE TABLE GIS (ID INTEGER PRIMARY KEY, GEOM GEOMETRY);
Table 'GIS' created.
SQL>CREATE INDEX RT_IDX_GIS ON GIS(GEOM) RTREE;
Index 'RT_IDX_GIS' created.

INSERT INTO GIS VALUES (101, ST_GEOMFROMTEXT('POINT(1 1)'));
INSERT INTO GIS VALUES (102, ST_GEOMFROMTEXT('MULTIPOINT(1 1, 2 2)'));
INSERT INTO GIS VALUES (103, ST_GEOMFROMTEXT('LINESTRING(1 1, 2 2)'));
INSERT INTO GIS VALUES (104, ST_GEOMFROMTEXT('MULTILINESTRING((1 1, 2 2),
(3 3, 4 5))'));
INSERT INTO GIS VALUES (105, ST_GEOMFROMTEXT('POLYGON((1 1, 2 1, 2 2, 1 2,
1 1))'));
INSERT INTO GIS VALUES (106, ST_GEOMFROMTEXT('POLYGON((0 0, 0 12, 12 12, 12 0,0 0),
(6 10, 6 11, 9 11, 9 10,6 10), (6 3, 6 6, 9 6, 9 3,6 3))'));
INSERT INTO GIS VALUES (107, ST_GEOMFROMTEXT('MULTIPOLYGON(((1 1, 2 1, 2 2, 1 2, 1 1)),

((3 3, 3 5, 5 5, 5 3, 3 3)))'));
INSERT INTO GIS VALUES (108, ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(1 1),
LINESTRING(2 2, 3 3))'));
INSERT INTO GIS VALUES (109, ST_BOUNDARY(ST_GEOMFROMTEXT('POINT(10 10)')));
INSERT INTO GIS VALUES (110, ST_GEOMFROMTEXT('GEOMETRYCOLLECTION(POINT(1 1),
LINESTRING(2 2, 3 3))'));
COMMIT;

공간 인덱스 제약 사항

공간 인덱스는 다음과 같은 경우에 제약을 가집니다.

  • 여러 컬럼에 대해 하나의 인덱스를 걸 수 없습니다.

  • 공간 인덱스는 파티션될 수 없습니다.

  • 공간 인덱스는 GEOMETRY TYPE이 아닌 컬럼에 대하여 생성할 수 없습니다.

  • SQL의 WHERE 절에 다음의 함수를 구현하였을 때만 공간 인덱스의 사용이 가능합니다.

    • ST_CONTAINS

    • ST_COVEREDBY

    • ST_COVERS

    • ST_CROSSES

    • ST_DWITHIN

    • ST_EQUALS

    • ST_FILTER

    • ST_INTERSECTS

    • ST_OVERLAPS

    • ST_TOUCHES

    • ST_WITHIN

  • 회전타원체 좌표계의 공간 인덱스는 해당 테이블의 GEOMETRY 컬럼에 제약 조건을 추가하여 생성 가 능합니다.

– 사용법

– 예제

  • 기존의 GEOMETRY 컬럼의 좌표계를 변경하여 공간 인덱스를 생성해야할 경우, 기존의 제약조건이 있 다면 이를 삭제하고 GEOMETRY들의 SRID를 변경한 후, 해당 SRID에 대한 제약조건을 추가하여 공간 인덱스를 생성합니다.

– 사용법

– 예제

공간 인덱스 제거

공간 인덱스의 제거는 다른 인덱스와 동일합니다.

  • 사용법

항목
설명

index_name

삭제할 공간 인덱스의 이름

Last updated