2010-12-26 15 views
23

के साथ समाप्त हो गया है, मैं xml बैकअप से तालिकाओं को पुनर्स्थापित करने के लिए SqlBulkCopy का उपयोग कर रहा हूं। तालिका बैकअप में से एक ~ 200 एमबी बड़ा है और इसमें बहुत सारे रिकॉर्ड हैं।टाइमआउट का समय SqlBulkCopy

मैं आ रही त्रुटि:

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

उत्तर

31

आप शायद टाइमआउट को बढ़ाने के लिए की जरूरत है। डिफ़ॉल्ट रूप से sqlBulkCopy.BulkCopyTimeout के मान को बढ़ाने का प्रयास करें जो 30 सेकंड है।

+9

समय समाप्त की सभी पंक्तियों को सम्मिलित करने की कोशिश अनंत का मतलब है। समाधान के लिए –

+4

धन्यवाद। मैंने sqlBulkCopy.BatchSize को कम करने और परीक्षण भी किया है। –

4

अपने SqlCommand ऑब्जेक्ट की CommandTimeout संपत्ति बदलें।

कनेक्शन स्ट्रिंग का कनेक्टेड टाइमआउट विशेषता यह निर्धारित करती है कि एक सर्वर से कनेक्ट करने का प्रयास रोकने से पहले SqlConnection ऑब्जेक्ट कितना समय चलता है।

SqlBulkCopy.BulkCopyTimeout संपत्ति भी बदलें।

27

वहाँ इस त्रुटि को ठीक करने के लिए दो तरीके हैं: यह 30 सेकंड और 0 है डिफ़ॉल्ट रूप से

  • बढ़ाएँ समय समाप्त अनंत का मतलब है।

    sqlBulkCopy.BulkCopyTimeout = {time in seconds} 
    
  • घटाएँ BatchSize डिफ़ॉल्ट रूप से यह 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

यह भी देखें: "एसकब्लूल्ककॉपी के लिए अनुशंसित बैच आकार क्या है?" http://stackoverflow.com/questions/779690/what-is-the-recommended-batch-size-for-sqlbulkcopy –

संबंधित मुद्दे