거의 포인터 (내 두 센트) :
은 "시스템 테이블"목적지에 따라 몇 가지 "중간"테이블에 기술 "천천히 치수 변화"와 유사한 해당 테이블을 분할 고려; 레코드별로 레코드 대신 시스템 테이블을 대량로드하십시오.
드롭 인덱스를 제거하기 위해 다시 만들 대량로드, 그리고 전에 "입력"테이블 등
로드하기 전에 해당 테이블에 불필요한 (키) 인덱스를 할당하지 마십시오.
대량 트랜잭션을 기록하지 말고 DB "복구 모델"을 대량로드 모드로 전환하십시오.
로드, 청소 및 유효성 검사에 SSIS (ETL) 작업을 사용할 수 있습니까?
UPDATE : 여기
은 일반적인 ETL 시나리오입니다 - 글쎄, 당신이 말하는 사람에 따라 달라집니다.
. ~ flat_file_1
(사용자가 가지고 있음)
클린flat_file_1 --> SSIS --> flat_file_2
(여기에서 확인할 수 있습니다)
.적합flat_file_2 --> SSIS --> flat_file_3
(모든 회사 표준 적용)
. 배달flat_file_3 --> SSIS (bulk) --> db.ETL.StagingTables
(대상 당 여러 개)
4B. insert into destination_table select * from db.ETL.StagingTable
(최종 목적지를 대량로드)
프로세스 (1-4)가 시간 초과되면 중간 파일에서 항상 시작할 수 있습니다. 또한 각 단계를 검사하고 SSIS에서 각 단계의 보고서 파일을 만들어 데이터 품질을 제어 할 수 있습니다. 운영 1-3은 본질적으로 느립니다. 여기서는 데이터베이스 외부에서 발생하고 있으며 별도의 서버에서 수행 할 수 있습니다. flat_file(1-3)
을 보관하면 현재 진행중인 작업에 대한 감사 추적 기능을 사용할 수 있습니다. 디버그에도 유용합니다. :)
큰 시스템 컨텍스트 없이는 대답하기가 매우 어렵습니다. 그 테이블이 사용되는 방법과 방법에 따라 달라집니다. –
위의 내 의견을 참조하십시오 –