Mam procedura składowana zaimportowana do EF4, a kiedy wywołuję ją z pewnymi parametrami po 30 sekundach, generuje błąd przekroczenia limitu czasu. W programie SQL Server profiler widzę wywołanie procedury przechowywanej z właściwymi parametrami, biorąc pod uwagę nieco ponad 30 sekund, co jest limit czasu w mojej aplikacji.Entity Framework 4 Procedura składowana Czas oczekiwania na wywołanie
JEDNAK, kiedy wykonuję ten sam SQL wysłany do profilera w Query Analyzer, wykonuje podsekund. Co może spowodować tę rozbieżność między wywołaniem z EF a wywołaniem z SQL Server Management Studio?
Pełny ślad stosu .NET error poniżej.
[SqlException (0x80131904): Limit czasu wygasł. Limit okresu czasu upłynął przed zakończeniem operacji, lub serwer jest odpowiadać.]
System.Data.SqlClient.SqlConnection.OnError (wyjątek SQLException, logiczna breakConnection) +2073486
System.Data.SqlClient.SqlInternalConnection .OnError (SQLException wyjątkiem, logiczna breakConnection) +5064444
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() +234
System.Data.SqlClient.TdsParser.Run (runBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader datastream BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +2275
System.Data.SqlClient.SqlDataReader.ConsumeMetaData) (+33
System.Data.SqlClient.SqlDataReader.get_MetaData (+86) (
System.Data.SqlClient.SqlCommand.FinishExecuteReader SqlDataReader DS, runBehavior runBehavior, String resetOptionsString) +311
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, runBehavior runBehavior, logiczna returnStream, logiczna asynchroniczny) +987
System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String metoda wynik DbAsyncResult) +162
System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, logiczna returnStream, String metoda) +32
System.Data.SqlClient.SqlCommand.ExecuteReader (CommandBehavior zachowanie, sposób ciąg) +141
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader (CommandBehavior zachowanie) +12
System.Data.Common.DbCommand.ExecuteReader (zachowanie CommandBehavior) +10 System.Data.EntityClient.EntityCommandDefinition .ExecuteStoreCommands (EntityCommand entityCommand, CommandBehavior be havior) +443[EntityCommandExecutionException: Wystąpił błąd podczas wykonywania definicji polecenia. Patrz wewnętrzną wyjątek dla szczegółów.]
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCommands (EntityCommand entityCommand zachowanie CommandBehavior) +479
System.Data.Objects.ObjectContext.CreateFunctionObjectResult (EntityCommand entityCommand, EntitySet EntitySet, EdmType edmType, MergeOption mergeOption) +182
System.Data.Objects.ObjectContext.ExecuteFunction (ciąg functionName, MergeOption mergeOption [] Parametry ObjectParameter) +218
System.Data. Objects.ObjectContext.ExecuteFunction (ciąg functionName, ObjectParameter [] parametry) +53
MetaView.DAL.MFCMData.MFCMDATAEntities.GetTradingOpenPositionCounterParty (Nullable1 positionDT, Nullable
1 tradingAccountID) w C: \ Projects \ ŚRODKÓW \ wWW \ MetaView \ MetaView.DAL .MFCMData \ MFCMData.Designer.cs: 7064 MetaView.BusinessLayer.Shared.Accounts.CounterParties .GetCounterParties (Int32 tradingAccountID) w C: \ Projects \ CASH \ web \ MetaView \ MetaView.BusinessLayer \ Shared \ Accounts \ CounterParties.cs: 161
Proszę zaksięgować zapytanie i oba plany wykonania. – usr