2012-09-10 3 views
1

3 개의 소스에서 병렬로 SQL 테이블에 데이터를 대량 삽입하는 프로세스가 있습니다. 이 테이블에 기본 키를 추가하면 대량 삽입 쿼리 중 2 개가 교착 상태로 인해 잠시 후 취소됩니다. 기본 키를 추가 할 때까지 이런 일이 발생하지 않았습니다. 문제가 기본 키를 추가하여 만든 클러스터 된 인덱스와 관련이 있다고 가정합니다.클러스터 된 인덱스가있는 테이블에 병렬로 대량 복사하는 방법?

이제 기본 키를 제거한 다음 테이블에 클러스터되지 않은 인덱스를 만들려고합니다. 문제가 그것이 무엇인지 생각하고,로드 프로세스를 망치지 않고 클러스터 된 인덱스를 추가 할 수있는 방법이 있는지에 대한 자세한 정보를 원합니다.

http://www.simple-talk.com/sql/learn-sql-server/bulk-inserts-via-tsql-in-sql-server/

우리는 단지 테이블과 최소 로그 트랜잭션을 잠금 : 그것은 치료보다 더 독이지만, 로버트 거대한 대량 삽입하기 전에 클러스터 된 인덱스를 삭제하기 위해 제공하는 경우

답변

1

확실하지.

+0

각로드 프로세스에는 약 3 시간이 걸립니다. 그러나 병렬 처리를 수행하면 전체 프로세스가 9 시간이 아닌 약 4 시간이 걸리므로 테이블을 잠글 수 없다는 의미에서 병렬 처리하지 않는 것이 좋습니다./ –

+0

경우에 따라 일부 경우에는 문제가되지 않습니다. 정규화 규칙을 어기는 것. 테이블이 데이터 저장을 위해 존재하고 기본 키가 교착 상태를 일으키는 경우 해당 키를 가지고 있지 않은 상태로 벗어날 수 있습니다 – AFD

관련 문제