2017-05-18 12 views
3

Postgis 테이블에 약 300GB의 등고선 데이터를로드 중입니다. 프로세스 속도를 높이려면 먼저 데이터를로드 한 다음 인덱스를 만드는 것이 가장 빠릅니다. 데이터를로드하는 데는 약 2 일이 걸렸지 만 지금은 약 30 일 동안 인덱스를 기다리고 있으며 아직 준비가되지 않았습니다.300GB Postgis 테이블의 색인 생성이 느림

쿼리이었다

create index idx_contour_geom on contour.contour using gist(geom); 

나는 pgadmin4 그것을 실행하고 progran의 메모리 소비는 이후 ++ 100기가바이트에 5백메가바이트까지 다양했다.

이러한 데이터베이스를 색인화하는 데 오랜 시간이 걸리는 것은 정상입니까?

프로세스 속도를 높이는 방법에 대한 팁은 무엇입니까?

편집 : 데이터가 1x1도 (위도/경도) 셀 (약 30.000 셀)에서로드되므로 1x1도보다 큰 경계 상자가 없으므로 대부분이 훨씬 작아야합니다. 그들은 EPSG : 4326 프로젝션에 있으며 유일한 속성은 높이와 기하학 (기하학)입니다.

+0

contour.contour 구조체에 대해 약간의 아이디어를주십시오. –

+1

'maintenance_work_mem'을 1GB와 같이 매우 높은 값으로 설정 했습니까? 색인 생성 속도를 높이는 주된 노브입니다. 아직도, 그 시간은 놀랍습니다. CPU가 사용 중이거나 I/O 병목 현상입니까? –

+0

나는 'maintenance_work_mem'을 설정하지 않았습니다. 이것은 문제 일 수 있습니다. 나는 지금 ALTER SYSTEM SET으로 설정했다. maintenance_work_mem = '1GB'; SELCT pg_reload_conf();'인덱싱을 다시 시작해야하는지, 아니면 적용하지 않을지 확실하지 않지만 주말에 실행하고 월요일에 다시 시작하도록합니다. 도움이되지 않는다면 다시 시작하십시오. 고마워요 @LaurenzAlbe! - (CPU 사용량은 많지 않지만 maintenance_work_mem이 매우 낮게 설정되어있을 때 메모리 사용량이 높다는 사실에 놀랐습니다.) – Einar

답변

0

maintenance_work_mem을 1GB로 변경하고 디스크에 다른 모든 쓰기를 중지했습니다. 많은 삽입 작업에는 많은 양의 리소스가 필요했던 ANALYZE가 추가되었습니다. 나는 지금 23 분 만에 달렸다.