2010-12-26 26 views
23

Tabloları xml yedeklerinden geri yüklemek için SqlBulkCopy kullanıyorum. Tablo yedeklerinden biri ~ 200MB büyük ve çok fazla kayıt var.Zaman aşımı süresi doldu SqlBulkCopy

yaşıyorum hatası: Muhtemelen zaman aşımı artırmak gerekir

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

cevap

31

. 30 saniye olan varsayılan değerden sqlBulkCopy.BulkCopyTimeout değerini artırmayı deneyin.

+9

bir TimeOut tüm satırları eklemek deneyin varsayılan olarak

sqlBulkCopy.BulkCopyTimeout = {time in seconds} 
  • düşürün BatchSize sonsuz anlamına gelir. –

  • +4

    Çözüm için teşekkürler. Ayrıca sqlBulkCopy.BatchSize azaltma buldum ve test ettik. –

    4

    SqlCommand nesnesinin CommandTimeout özelliğini değiştirin.

    Bir bağlantı dizesinin Connect Timeout özniteliği, bir sunucuya bağlanmayı denemeden önce bir SqlConnection Nesnesinin ne kadar süre çalışacağını belirler.

    Ayrıca SqlBulkCopy.BulkCopyTimeout Mülkü de değiştirin.

    27

    bu hatayı düzeltmek için iki yol vardır:

    • Artış Zaman Aşımı varsayılan olarak ikinci 30 ve 0 sonsuz anlamına gelir. o 0'dan bir toplu

      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

    Ayrıca bkz .: "SqlBulkCopy için önerilen parti boyutu nedir?" http://stackoverflow.com/questions/779690/what-is-the-recommended-batch-size-for-sqlbulkcopy –

    İlgili konular