2010-12-26 3 views
23

xml 백업에서 테이블을 복원하는 데 SqlBulkCopy를 사용하고 있습니다. 테이블 백업 중 하나는 200MB 크기로 많은 레코드가 있습니다.제한 시간이 SqlBulkCopy로 만료되었습니다.

나는 데 오류 : 당신은 아마 제한 시간을 늘릴 필요가

Timeout expired. 
The timeout period elapsed prior to completion of the operation or the server 
is not responding. 

답변

31

. sqlBulkCopy.BulkCopyTimeout의 값을 기본값 인 30 초 (30 초)로 늘려보십시오.

+9

타임 아웃의 모든 행을 삽입하려고 기본적으로

sqlBulkCopy.BulkCopyTimeout = {time in seconds} 
  • 감소 BatchSize에서 무한을 의미합니다. –

  • +4

    솔루션을 제공해 주셔서 감사합니다. 또한 sqlBulkCopy.BatchSize를 줄이고 테스트했습니다. –

    4

    SqlCommand 개체의 CommandTimeout 속성을 변경하십시오.

    연결 문자열의 연결 시간 제한 특성은 SqlConnection 개체가 서버 연결 시도를 중단하기 전에 실행되는 시간을 결정합니다.

    SqlBulkCopy.BulkCopyTimeout 속성도 변경하십시오.

    27

    이 오류를 해결하는 방법은 두 가지가 있습니다

    • 증가 시간 초과 기본적으로는 두 번째 30 0은 무한을 의미합니다. 는 0에서 하나 개의 배치

      sqlBulkCopy.BatchSize = {no of rows you want to insert at once} 
      

    http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.batchsize.aspx http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.bulkcopytimeout.aspx

    +2

    참고 항목 : "SqlBulkCopy의 권장 배치 크기는 얼마입니까?" http://stackoverflow.com/questions/779690/what-is-the-recommended-batch-size-for-sqlbulkcopy –

    관련 문제