처음있을 때 많은 양의 데이터를 삽입해야 할 수도 있습니다. 데이터베이스를 채우고 있습니다. 이 섹션에는 몇 가지 제안이 포함되어 있습니다 이 프로세스를 가능한 한 효율적으로 만드는 방법.
AutoCommit을 끄고 마지막에 커밋을 수행하십시오. (안에 일반 SQL, 이것은 발행을 의미합니다시작at 시작과커밋끝에. 일부 클라이언트 라이브러리는 등 뒤에서이 작업을 수행 할 수 있습니다. 원할 때 라이브러리가 수행해야합니다. 완료.) 각 삽입이 별도로 커밋되면스포츠 토토많은 일을하고 있습니다 추가 된 각 행에 대해 작동합니다. 추가 혜택 한 번의 트랜잭션의 모든 삽입은 한 줄은 실패한 다음 모든 행의 삽입이 삽입되었습니다. 그 시점까지 롤백 될 것이므로 갇히지 않을 것입니다. 부분적으로로드 된 데이터.
usePostgreSQL : 문서 : 8.0 : 스포츠 토토 결과모두로드하려면 일련의를 사용하는 대신 한 명령의 행삽입명령. 그만큼COPY명령은 크게로드하기 위해 최적화되었습니다 행의 수; 보다 유연하지 않습니다.삽입이지만 오버 헤드가 상당히 덜 발생합니다 큰 데이터로드. 부터COPYis 단일 명령, 당신이 가면 자동 커밋을 비활성화 할 필요가 없습니다. 이 방법을 사용하여 테이블을 채우십시오.
사용할 수없는 경우COPY, 도움이 될 수 있습니다 사용하려면PostgreSQL : 문서 : 8.0 : 사설 토토to 준비된 생성삽입성명서, 그리고 사용execute여러 번 필수의. 이것은 반복적으로 오버 헤드를 피합니다 구문 분석 및 계획삽입.
많은 수의 행을 사용하여copy사용하는 것보다 거의 항상 빠릅니다삽입준비가 사용되고 여러 삽입이 있습니다 단일 거래로 배치되었습니다.
새로 생성 된 테이블을로드하는 경우 가장 빠른 방법 테이블을 만들고, 대량을 사용하여 테이블의 데이터를로드하는 것입니다COPY그런 다음 필요한 색인을 만듭니다 테이블 용. 기존 데이터에 대한 인덱스 생성은 다음과 같습니다 각 행처럼 점진적으로 업데이트하는 것보다 빠릅니다 짐을 실은.
기존 테이블을 보강하는 경우 색인, 테이블을로드 한 다음 인덱스를 재현하십시오. 물론, 다른 사용자의 데이터베이스 성능은 부정적인 일 수 있습니다 색인이 누락 된 시간 동안 영향을받습니다. 하나 야 또한 고유 한 인덱스를 삭제하기 전에 두 번 생각하십시오 고유 한 제약 조건으로 제공되는 오류 확인은 손실됩니다. 색인이 누락 된 동안.
일시적으로 증가하는maintenance_work_mem구성 변수 다량의 데이터를로드 할 때 성능 향상으로 이어집니다. B- 트리 일 때이기 때문입니다 인덱스는 처음부터 기존 내용으로 생성됩니다. 테이블을 정렬해야합니다. 병합 정렬이 더 많이 사용하도록 허용합니다 메모리는 더 적은 병합 패스가 필요하다는 것을 의미합니다. 더 큰 설정maintenance_work_mem5 월 또한 외국 키 제약의 검증 속도를 높이십시오.
일시적으로 증가하는Checkpoint_segments구성 변수는 큰 데이터로드를 더 빨리 만들 수 있습니다. 많은 양의 데이터를로드하기 때문입니다스포츠 토토체크 포인트는 일반 체크 포인트보다 더 자주 발생합니다 주파수 (에 의해 지정됨Checkpoint_Timeout구성 변수). 체크 포인트가 발생할 때마다 모든 더러운 페이지를 플러시해야합니다. 디스크에. 증가함으로써Checkpoint_segments일시적으로 벌크 데이터 중 하중, 필요한 체크 포인트 수는 줄인.
분포를 크게 변경할 때마다 테이블 내 데이터, 실행분석강력히 권장됩니다. 이것 대량의 데이터가 많은 양의 데이터를 테이블에 포함시킵니다. 달리기분석(또는진공 분석)는 플래너에 보장합니다 표에 대한 최신 통계. 통계가 없거나 구식 통계에 따르면, 플래너는 그 동안 열악한 결정을 내릴 수 있습니다 쿼리 계획, 모든 테이블에서 성능이 저하됩니다. 부정확하거나 존재하지 않는 통계.