0

SQL Azure에 삽입해야하는 많은 수의 레코드 (약 2000)가 생성되는 일부 직원 세분화 작업이 있습니다. 레코드 자체는 약 4 개의 정수로 매우 작습니다. Azure 작업자 역할은 세분화 작업을 수행하고 결과 행을 SQL Azure 테이블에 삽입합니다. 대기열에 여러 작업 (각각 약 1000-2000 행)이있을 수 있으므로 이러한 각 삽입 작업은 매우 빠르게 수행해야합니다.sql azure 일괄 처리 크기

SQL Azure에 로컬 컴퓨터를 사용하는 타이밍 테스트는 상당한 시간이 걸렸습니다 (1000 개 삽입의 경우 약 2 분). 이는 네트워크 대기 시간으로 인해 발생할 수 있습니다. 나는 worker 역할로부터의 insert가 훨씬 더 빠르다고 가정하고있다.

그러나 엔티티 프레임 워크는 일괄 삽입이 아니므로 SQLBulkCopy 사용에 대해 생각하고있었습니다. 일괄 처리 크기가 1000이라고하면 SQLBulkcopy를 사용하면 쿼리가 제한됩니까? 권장되는 접근 방법이 있습니까?

+1

일부는 SQL Azure에 특별히 적용되지 않을 수도 있지만 그럼에도 불구하고 유용 할 수 있습니다. http://dba.stackexchange.com/questions/16763/how-do-i-run-a-large-script- memory-running-without-many-inserts-without-memory-outstackoverflow.com/questions/8635818/multiple-insert-statements-vs-single-insert-with-multiple-values/8640583#8640583 –

답변

2

대량 복사 API는 사용자의 목적에 완벽하게 부합해야하며 성능이 크게 향상됩니다.

배치 크기가 2000 인 1000 만 레코드를 Azure 데이터베이스에 삽입하고 로컬 컴퓨터에서 실행할 때 일괄 처리 당 10 초의 성능으로 스로틀 링이 발생하지 않았는지 테스트했습니다.