이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 14.4. 토토 결과베이스 채우기버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

14.4. 채워진 범퍼카 토토

처음있을 때 많은 양의 데이터를 삽입해야 할 수도 있습니다. 범퍼카 토토를 채우고 있습니다. 이 섹션에는 몇 가지 제안이 포함되어 있습니다 이 프로세스를 가능한 한 효율적으로 만드는 방법.

14.4.1. 자동 커밋 비활성화

다중 사용시삽입s, 끄기 자동 커밋하고 마지막에 커밋을 수행하십시오. (평범한 SQL에서는이 수단 발행시작시작시커밋끝에. 일부 클라이언트 라이브러리 등 뒤에서이 작업을 수행 할 수 있습니다.이 경우 확인해야합니다. 도서관은 당신이 그것을 원할 때 그것을합니다.) 각각을 허용하는 경우 별도로 커밋 될 삽입,PostgreSQL각 행에 대해 많은 작업을 수행하고 있습니다 추가됩니다. 하나의 모든 삽입을 수행하면 추가 이점이 있습니다 트랜잭션은 한 행의 삽입이 실패하면 해당 지점까지 삽입 된 모든 행의 삽입이 롤링됩니다. 뒤로, 당신은 부분적으로로드 된 데이터에 갇히지 않을 것입니다.

14.4.2. 사용copy

use젠 토토 : 문서 : 9.3 : Copy모든 행을 하나로로드합니다 일련의를 사용하는 대신 명령삽입명령. 그만큼COPY명령은 많은 수의 행을로드하기 위해 최적화되었습니다. 적습니다 유연성삽입이지만 발생합니다 큰 범퍼카 토토로드에 대한 오버 헤드가 크게 적습니다. 부터copy는 단일 명령이며 필요하지 않습니다 이 메소드를 사용하여 테이블을 채우는 경우 자동 커밋 비활성화.

사용할 수없는 경우COPY, 도움이 될 수 있습니다 사용하려면PostgreSQL : 문서 : 9.3 : 토토 캔준비된 생성삽입statement, 그리고 사용execute필요한만큼 여러 번. 이것은 일부를 피합니다 반복적으로 구문 분석 및 계획의 오버 헤드삽입. 다른 인터페이스 가이 시설을 제공합니다 다른 방식으로; 찾아보기"준비 진술 "인터페이스 문서에서.

|COPY사용하는 것보다 거의 항상 빠릅니다삽입준비is 사용 및 다중 삽입은 단일로 배치됩니다 거래.

COPY내에서 사용하면 가장 빠릅니다 이전과 동일한 거래생성 테이블또는Truncate명령. 그런 식으로 오류가 발생하면 WAL이 작성할 필요가 없습니다. 새로로드 된 범퍼카 토토가 포함 된 파일은 어쨌든 제거됩니다. 그러나이 고려 사항은에만 적용됩니다.Wal_levelis최소모든 명령은 WAL을 작성해야합니다 그렇지 않으면.

14.4.3. 인덱스 제거

새로 생성 된 테이블을로드하는 경우 가장 빠른 방법 테이블을 만들고, 대량을 사용하여 테이블의 범퍼카 토토를로드하는 것입니다COPY, 그런 다음 테이블에 필요한 색인을 만듭니다. 기존 데이터에 대한 색인 생성은 업데이트하는 것보다 빠릅니다. 각 행이로드 될 때 점차적으로.

기존 테이블에 많은 양의 데이터를 추가하는 경우, 인덱스를 떨어 뜨리고 테이블을로드 한 다음 인덱스를 재현하십시오. 물론 다른 사람의 데이터베이스 성능 인덱스가 누락 된 동안 사용자가 어려움을 겪을 수 있습니다. 하나 또한 독특한 색인을 삭제하기 전에 두 번 생각해야합니다. 고유 한 제약 조건으로 제공되는 오류 확인은 손실되는 동안 색인이 누락되었습니다.

14.4.4. 외국의 주요 제약 제거

인덱스와 마찬가지로 외래 키 제약 조건을 확인할 수 있습니다"대량"보다 효율적으로 행으로. 따라서 외국의 주요 제약을 삭제하는 것이 유용 할 수 있습니다. 범퍼카 토토를로드하고 제약 조건을 다시 만듭니다. 다시, a 범퍼카 토토로드 속도와 오류 검사 손실 간의 트레이드 오프 제약 조건이 없습니다.

기존이있는 테이블에 데이터를로드 할 때 외국의 주요 제약 조건, 각 새 행에 항목이 필요합니다. 서버의 보류중인 트리거 이벤트 목록 (발사이기 때문에 행의 외국 키 제약 조건을 확인하는 트리거). 로딩 수백만 행으로 인해 트리거 이벤트 큐가 오버플로가 발생할 수 있습니다. 사용 가능한 메모리, 참을 수없는 교환 또는 명백한 메모리 명령의 실패. 따라서 일 수 있습니다.필요한많은 양의 범퍼카 토토를로드 할 때 외래 키를 떨어 뜨리고 다시 적용하십시오. 제약 조건을 임시로 제거하는 것만 허용되지 않는 경우 다른 상환은로드 작업을 더 작은 것으로 분할하는 것일 수 있습니다. 업무.

14.4.5. 증가하다maintenance_work_mem

일시적으로 증가하는maintenance_work_mem많은 양의 범퍼카 토토를로드 할 때 구성 변수 성능 향상. 이것은 속도를 높이는 데 도움이 될 것입니다색인 생성명령 및변경 테이블 외국 키 추가명령. 그것은별로하지 않을 것입니다COPY자체 이므로이 조언은 유용합니다 위의 기술 중 하나 또는 둘 다를 사용할 때.

14.4.6. 증가하다Checkpoint_segments

일시적으로 증가하는Checkpoint_segments구성 변수는 큰 범퍼카 토토로드를 더 빨리 만들 수 있습니다. 이것 많은 양의 범퍼카 토토를로드하기 때문에PostgreSQL검사 점이 발생합니다 정상 체크 포인트 주파수보다 더 자주 (Checkpoint_Timeout구성 변하기 쉬운). 체크 포인트가 발생할 때마다 모든 더러운 페이지가 있어야합니다 디스크로 플러시됩니다. 증가함으로써Checkpoint_segments일시적으로 벌크 데이터 중 하중, 필요한 체크 포인트 수는 줄인.

14.4.7. WAL 보관 및 스트리밍을 비활성화합니다 복제

많은 양의 데이터를 설치에로드 할 때 WAL 아카이빙 또는 스트리밍 복제를 사용하면 더 빠를 수 있습니다. 로드가 완료된 후 새로운베이스 백업을 처리하는 것보다. 많은 양의 증분 월 데이터. 증분 WAL을 방지합니다 로딩하는 동안 로깅, 아카이빙 및 스트리밍 복제 비활성화, 설정Wal_levelto최소, archive_modetooffmax_wal_senders0까지. 그러나 이러한 설정을 변경하려면 서버가 필요합니다 다시 시작.

Archiver 또는 Wal Sender의 시간을 피하는 것 외에 WAL 데이터를 처리하면이 작업을 수행하면 실제로 확인됩니다. WAL을 전혀 쓰지 않도록 설계 되었기 때문에 더 빨리 명령 만약에Wal_levelis최소. (그들은 충돌 안전을 더 보장 할 수 있습니다 저렴하게fsync끝에 Wal을 작성하는 것보다) 이것은 다음 명령에 적용됩니다.

  • 테이블을 선택하여

  • 색인 생성(및 변형ALTER 테이블 기본 키 추가)

  • ALTER 테이블 세트 테이블 스페이스

  • 클러스터

  • COPY From, 대상 테이블이있는 경우 동일한 거래에서 일찍 만들어 지거나 잘 렸습니다

14.4.8. 달리다분석나중에

범퍼카 토토 분포를 크게 변경할 때마다 테이블 내에서 실행PostgreSQL : 문서 : 9.3 : 토토 커뮤니티is 강력하게 추천합니다. 여기에는 대량 적재량이 포함됩니다 테이블에 데이터. 달리기분석(또는진공 분석)는 플래너를 보장합니다 표에 대한 최신 통계가 있습니다. 통계가 없거나 구식 통계에 따르면, 플래너는 그 동안 나쁜 결정을 내릴 수 있습니다 쿼리 계획, 모든 테이블에서 성능이 저하됩니다. 부정확하거나 존재하지 않는 통계. Autovacuum 인 경우에 유의하십시오 데몬이 활성화되고 실행될 수 있습니다분석자동으로; 보다섹션 23.1.3and섹션 23.1.6자세한 내용은

14.4.9. 에 대한 몇 가지 메모pg_dump

덤프 스크립트에 의해 생성pg_dump자동으로 여러 가지를 적용하지만 그렇지 않습니다 위의 지침 중 모두. a를 새로 고침하려면pg_dump가능한 빨리 덤프하십시오 수동으로 몇 가지 추가 작업을 수행합니다. (이 점이 적용됩니다 하는 동안복원덤프, 아무것도 아닙니다생성it. 텍스트 덤프를로드하는지 동일한 점이 적용PSQL또는 사용PG_RESTOREA에서로드하려면pg_dump아카이브 파일.)

기본적으로pg_dump용도COPY, 그리고 완전한 생성 될 때 스키마 및 데이터 덤프, 생성하기 전에 데이터로드하는 것이 신중합니다. 인덱스 및 외국 키. 이 경우 몇 가지 지침이 있습니다 자동으로 처리됩니다. 당신이해야 할 일은 다음과 같습니다.

  • 적절한 설정 (즉, 정상보다 큰) 값을 설정하십시오.maintenance_work_memandCheckpoint_segments.

  • WAL 아카이빙 또는 스트리밍 복제를 사용하는 경우 고려하십시오 복원 중에 그들을 비활성화합니다. 그렇게하려면 설정archive_modetoOFF, Wal_levelto최소max_wal_senders21563_21674

  • 평행 덤프 실험 및 두 가지 모두의 복원 모드pg_dumpandPG_RESTORE최적의 수를 찾으십시오 사용해야 할 동시에. 덤핑 및 복원 방법에 따라 동시에 복원 의-j옵션을 제공해야합니다 직렬 모드에 비해 성능이 상당히 높아집니다.

  • 전체 덤프를 단일로 복원 해야하는지 고려하십시오. 거래. 그렇게하려면를 통과하십시오.-1또는-스플리닝 전환명령 줄 옵션PSQL또는PG_RESTORE. 이 모드를 사용할 때까지도 가장 작은 오류는 전체 복원을 롤백 할 수 있습니다 많은 시간의 처리를 폐기합니다. 어떻게 상호 관련된 지에 따라 다릅니다 데이터는 수동 정리보다 바람직한 것 같습니다.COPY사용하면 명령이 가장 빠르게 실행됩니다 단일 트랜잭션과 WAL 아카이브가 꺼졌습니다.

  • 범퍼카 토토 서버에서 여러 CPU를 사용할 수있는 경우 고려하십시오. 사용PG_RESTORE's-Jobs옵션. 이를 통해 동시 데이터로드가 가능합니다 그리고 색인 생성.

  • run분석나중에.

범퍼카 토토 전용 덤프가 여전히 사용됩니다copy, 그러나 인덱스를 삭제하거나 재현하지 않으며 일반적으로는 그렇지 않습니다. 외국 열쇠를 터치합니다.[1]로드 할 때 a 범퍼카 토토 전용 덤프, 인덱스를 삭제하고 재현하는 것은 귀하에게 달려 있습니다. 해당 기술을 사용하려면 외국 키. 여전히 유용합니다 증가하려면Checkpoint_segments범퍼카 토토를로드하지만 증가하지 마십시오maintenance_work_mem; 오히려, 당신은 그렇게 할 것입니다 이후 인덱스와 외국 키를 수동으로 재현합니다. 그리고하지 마십시오 잊어 버려분석당신이 끝났을 때; 보다섹션 23.1.3섹션 23.1.6자세한 내용은

노트

[1]

당신은를 사용하여 외래 키를 비활성화하는 효과를 얻을 수 있습니다-disable-triggers옵션 - 그러나 실현하십시오 그것은 단순한 연기가 아니라 외국 열쇠를 제거합니다 유효성 검사, 따라서 사용하면 잘못된 데이터를 삽입 할 수 있습니다. 그것.