पर पुन: उत्पन्न नहीं किया जा सकता है व्यवसाय की हमारी लाइन में हम एक आरईएसटी आधारित एपीआई होस्ट कर रहे हैं जो विंडोज एज़ूर द्वारा होस्ट किया गया है और एसक्यूएल एज़ूर के साथ डेटाबेस स्टोरेज के रूप में होस्ट किया गया है।एसक्यूएल एज़ूर पर टाइमआउट समाप्त हो गया; ऑन-प्रिमाइज़ एसक्यूएल सर्वर
वेब रोल (विंडोज 2008R2, आईआईएस 7.5, डब्ल्यूसीएफ, बड़ा उदाहरण) और एसक्यूएल एज़ूर दोनों उत्तरी यूरोप क्षेत्र में होस्ट किए गए हैं।
समस्या यह है कि जब हम गहन एसक्यूएल काम करते हैं तो हमें अक्सर मिलता है "टाइमआउट समाप्त हो गया। ऑपरेशन पूरा होने से पहले टाइमआउट अवधि समाप्त हो गई है या सर्वर प्रतिक्रिया नहीं दे रहा है।"।
मुझे यहां क्या परेशानी है, इससे कोई फर्क नहीं पड़ता कि हम क्या करते हैं, हम इसे हमारे ऑन-प्रिमाइज़ एसक्यूएल सर्वर (SQL सर्वर 2008R2) पर उत्तेजित नहीं कर सकते हैं।
इस रहस्य को स्पष्ट करने में कोई मदद की सराहना की जाती है क्योंकि ऐसा लगता है कि वेब रोल इंस्टेंस सीधे SQL Azure इंस्टेंस से बात नहीं कर रहा है हालांकि दोनों उत्तरी यूरोप में स्थित हैं।
एक अधिक विस्तृत अपवाद:
<SqlException>
<Message>Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.</Message>
<StackTrace>
<Line>at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)</Line>
<Line>at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()</Line>
<Line>at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)</Line>
<Line>at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()</Line>
<Line>at System.Data.SqlClient.SqlDataReader.get_MetaData()</Line>
<Line>at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)</Line>
<Line>at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)</Line>
<Line>at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)</Line>
<Line>at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)</Line>
<Line>at System.Data.SqlClient.SqlCommand.ExecuteScalar()</Line>
<Line>at SyncInvokeAddCollaboratorFieldInstance(Object , Object[] , Object[])</Line>
<Line>at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs)</Line>
<Line>at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc)</Line>
<Line>at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc)</Line>
<Line>at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc)</Line>
<Line>at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)</Line>
</StackTrace>
<UserDefinedInformation>
<HelpLink.ProdName><![CDATA[Microsoft SQL Server]]></HelpLink.ProdName>
<HelpLink.ProdVer><![CDATA[11.00.2065]]></HelpLink.ProdVer>
<HelpLink.EvtSrc><![CDATA[MSSQLServer]]></HelpLink.EvtSrc>
<HelpLink.EvtID><![CDATA[-2]]></HelpLink.EvtID>
<HelpLink.BaseHelpUrl><![CDATA[http://go.microsoft.com/fwlink]]></HelpLink.BaseHelpUrl>
<HelpLink.LinkId><![CDATA[20476]]></HelpLink.LinkId>
</UserDefinedInformation>
</SqlException>
दो डेटाबेस में समान इंडेक्स? हां, अजीब एसक्यूएल विलंबता के कारण सरल प्रश्नों के लिए धीमी गति से धीमा है, लेकिन 8-15 बार एक ही डेटाबेस स्कीमा के लिए काफी खड़ी लगता है। –
हाँ, "समान" स्कीमा जहां एसएसएमएस 2012 एसक्यूएल एज़ूर के लिए स्क्रिप्ट उत्पन्न करता है। "समान" क्योंकि जेनरेट की गई स्क्रिप्ट SQL सर्वर 2008R2 के साथ 1-1 नहीं है। मैं कर सकता हूं - कुछ बिंदु पर - विलंबता को समझें, लेकिन क्या यह "उन्मूलन" नहीं होना चाहिए जब वेब और एसक्यूएल दोनों एक ही क्षेत्र में हों? –
और आप सही हैं; 8-15 अतिरंजित था .. यह 4-8 गुना धीमा है (अलग-अलग परिदृश्य; इसके लिए यह केवल "केवल" 4-5 गुना धीमा है), लेकिन लापता रिकॉर्ड के साथ टाइमआउट पर होता है। –