많은 "클라이언트"에 대한 데이터가 포함 된 데이터베이스가 있습니다. 현재 우리는 .Net SqlBulkCopy
을 사용하여 수십만 개의 행을 여러 테이블에 자주 삽입합니다. 이로 인해 트랜잭션 기간 동안 전체 테이블이 잠기고 액세스 할 수 없게됩니다.파티션이 여러 대량로드를 허용합니까?
대부분의 비즈니스 프로세스는 한 번에 한 클라이언트에 대해서만 데이터에 액세스하므로 다른 클라이언트의 데이터를 업데이트하는 동안 한 클라이언트에 대한 데이터를로드 할 수 있기를 원합니다.
모든 재미있는 일을 만들기 위해 모든 PK, FK 및 클러스터 된 인덱스가 GUID 열에 있습니다 (이 변경을 고려하고 있습니다).
모든 테이블에 ClientID를 추가 한 다음이를 파티셔닝하고 있습니다. 필요한 기능을 제공합니까?
나는 대답이 없지만 PK는 GUID가 좋은 선택입니다. 아이디어가 외계인이라고 느끼기 때문에 이것을 바꾸지 마십시오. :-) –
@Aaron -하지만 클러스터 된 인덱스에는 좋지 않습니다. 현재 4 백만 행의 테이블 만이 거의 수행되지 않습니다 ... – cjk
@ck -하지만 PK와 클러스터링은 함께 묶이지 않습니다. –