답변:
지오메트리 열에서 인덱스를 일괄 생성하려면 방금 중단 한이 plpgsql 함수를 사용해 볼 수 있습니다.
CREATE OR REPLACE FUNCTION BatchIndex(sn text, tn text, cn text) RETURNS void AS $$
DECLARE i_exists integer;
DECLARE idxname text;
BEGIN
idxname := 'idx_' || tn || '_' || cn;
select into i_exists count(*) from pg_class where relname = idxname;
IF i_exists = 0 THEN
EXECUTE 'CREATE INDEX ' ||idxname || ' ON '
|| sn || '.' || tn
|| ' USING GIST(' || cn || ')';
END IF;
END;
$$ LANGUAGE plpgsql;
데이터베이스에서 분노로 시도하지는 않았지만 작업을 수행하는 것 같습니다.
그것을 사용하려면 SELECT
다음과 같은 문장을 실행 하십시오.
select BatchIndex('public', f_table_name, f_geometry_column) from geometry_columns where f_table_schema = 'public';
모든 지오메트리 열에 인덱스를 만들려면 다음과 같이 사용할 수 있습니다.
select BatchIndex(f_table_schema, f_table_name, f_geometry_column) from geometry_columns;
그런 다음 VACUUM ANALYZE
모든 것을 정리 하기 위해 a 를 실행하십시오 .
unknown
하는 것이 아니라 유형이라고 생각 character varying
하지만 문제가있는 곳을 볼 수 없습니다. 나는 그것에 대해 약간의 생각을 줄 것이다. :)
테이블이 '빌딩'이라고 말하면 GIST를 사용하여 색인을 생성 할 수 있습니다
CREATE INDEX building_gindx ON building USING GIST (geom);
당신이 찾고있는 것입니까?