Trong dòng kinh doanh của chúng tôi, chúng tôi đang lưu trữ một API dựa trên REST được lưu trữ bởi Windows Azure và với SQL Azure làm cơ sở dữ liệu lưu trữ.Hết giờ hết hạn trên SQL Azure; không thể sao chép tại chỗ tiền đề SQL Server
Cả Vai trò web (Windows 2008R2, IIS 7.5, WCF, Ví dụ lớn) và SQL Azure được lưu trữ ở khu vực Bắc Âu.
Vấn đề là, khi chúng tôi thực hiện công việc SQL chuyên sâu, chúng tôi thường bị hết thời gian chờ là . Thời gian hết hạn trước khi hoàn thành thao tác hoặc máy chủ không phản hồi "..
Điều phiền hà tôi ở đây là, bất kể chúng tôi làm gì, chúng tôi không thể kích động điều này trên các máy chủ SQL tại chỗ của chúng tôi (SQL Server 2008R2).
Bất kỳ trợ giúp nào trong việc làm rõ bí ẩn này được đánh giá cao vì có vẻ như cá thể Vai trò Web không trực tiếp nói đến cá thể SQL Azure mặc dù cả hai đều nằm ở Bắc Âu.
Một ngoại lệ chi tiết hơn:
<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>
Chỉ mục giống nhau trong hai cơ sở dữ liệu? Có, Azure SQL có nhiều khả năng chậm hơn cho các truy vấn đơn giản do độ trễ, nhưng 8-15 lần âm thanh khá dốc cho cùng một lược đồ cơ sở dữ liệu. –
Yep, lược đồ "giống hệt" trong đó SSMS 2012 tạo tập lệnh cho SQL Azure. "Giống hệt" bởi vì tập lệnh được tạo không phải là 1-1 với SQL Server 2008R2. Tôi có thể - đến một thời điểm nào đó - hiểu được độ trễ, nhưng điều này không nên "loại bỏ" khi cả Web và SQL ở cùng một vùng? –
Và bạn đúng; các 8-15 đã phóng đại .. nó nhiều hơn 4-8 lần chậm hơn (kịch bản khác nhau, cho điều này nó "chỉ" 4-5 lần chậm hơn), nhưng với các bản ghi thiếu làm thời gian chờ. –