2014-11-04 4 views
3

큰 테이블은 삽입 및 선택 만하므로이 테이블에 대한 자동 진공 버퍼가 실행 중일 때 시스템이 매우 느립니다. 이 후Postgres에서 테이블에 대한 자동 진공을 방지하는 방법

ALTER TABLE ag_event_20141004_20141009 SET (autovacuum_enabled = false, toast.autovacuum_enabled = false); 
ALTER TABLE ag_event_20141014_20141019 SET (autovacuum_enabled = false, toast.autovacuum_enabled = false); 

(후 약간의 시간이) 내가 볼 : 나는 특정 테이블에 대해 자동 진공 스위치를 끄고이

select pid, waiting, xact_start, query_start,query from pg_stat_activity order by query_start; 

18092 | f  | 2014-11-04 22:21:05.95512+03 | 2014-11-04 22:21:05.95512+03 | autovacuum: VACUUM public.ag_event_20141004_20141009 (to prevent wraparound) 
19877 | f  | 2014-11-04 22:22:05.889182+03 | 2014-11-04 22:22:05.889182+03 | autovacuum: VACUUM public.ag_event_20141014_20141019 (to prevent wraparound) 

어떤 쉘을 내가 모두에서이 테이블 autovacuuming 전환 할 ??

답변

6

의 핵심은 여기에 있습니다 :

(to prevent wraparound) 

이것은 포스트 그레스 해야에게 free up transaction identifiers을 위해 자동 진공을 의미한다.

이 유형의 자동 축전기를 완전히 비활성화 할 수는 없지만 autovacuum_freeze_max_agevacuum_freeze_min_age 매개 변수를 조정하여 빈도를 줄일 수 있습니다.