세부 사항을 요약하려면 : 공급 업체 (Oracle) 데이터베이스에 약 5 백만 개의 행을 스테이징해야합니다. OracleBulkCopy
(ODP.NET)을 사용하여 500k 행의 배치에는 모든 것이 잘 되지만 최대 5M까지 확장하려고하면 1M 마크에 도달하면 크롤링 속도가 느려지고 더 많은 행이로드되면 점차적으로 느려집니다. 3 시간 정도 지나면 시간이 초과됩니다.
나는 (또한, 게시물의 많은 모순되는 것이이 테이블에 기본 키에 관련이 있지만 오라클 포럼 및 스택 오버플로 정보와 내가 모순을 읽고 있어요 무엇을 많이 트롤 어업을 봤는데 의심 서로 ) . 누군가 프로세스에 대한 밀접한 관련 질문에 대한 기록을 세울 수 있기를 바랍니다.
않는
OracleBulkCopy
클래스는 기존의 또는 직접 경로로드를 사용할 수 있습니까? 이를 확인할 수있는 방법이 있습니까?가정이 수행 사용 직접 경로로드 : 그것은 오라클은 자동으로 부하와 풋 다시 온라인 이후 그 동안 사용할 수없는 모든 인덱스를 설정한다는 사실인가요? 이 효과에 대한 몇 가지 진술을 읽었지만 다시 확인할 수는 없습니다.
# 2가 true이면 대량 복사 작업을 시작하기 전에 테이블에 어떤 인덱스가 달라 집니까? 그렇다면 왜 그렇습니까?
# 3과 관련하여 일반적으로 사용할 수없는 인덱스로 벌크로드와 실제로로드 전에 인덱스를 삭제하고 나중에 다시 생성하는 것 사이에는 실질적인 차이가 있습니까?
# 2 인 경우 하지 올바른, 또는 내가 이해하지 못하는거야 몇 가지주의 사항이있는 경우, 그것은 어떤 차이 만들 것 명시 적으로는 벌크로드 전에 인덱스를 사용할 수 없게 한 다음 명시 적으로 나중에 그것을 다시?
더 많은 레코드가 추가됨에 따라 대량 빌드 작업이 점차 느리게 성장할 수있는 인덱스 빌드 이외의 다른 것이 있습니까? (대량 작업이 기록되지 않을 것으로 예상하지만 로깅과 관련이 있습니까?)
PK / 인덱스를 먼저 삭제 하지 않고 성능을 향상시킬 수있는 다른 방법 이 없다면 , 인덱스가 완전히 사라지지 않도록하기 위해 어떤 단계를 수행해야합니까? 과정의 중간?