我有一个带有实体框架的 MVC4 应用程序用于数据访问。到目前为止,我的应用程序似乎运行良好,其中一个页面返回了大约 13,000 多行,并且连接超时。另外,在我尝试运行返回 13,000 多行的页面后,网站的其余部分也开始变得非常缓慢。虽然我使用的是相当复杂的 linq 查询,但我使用的是 Stack Exchange miniprofiler,并使用其中的 sql,我确定我的查询花费了不到一秒钟的时间(通过在 LINQ 查询中运行生成的 sql 来验证)直接 SSMS;可能需要 2 秒,顶部)。即使返回的结果集很小,分析器也会说类似“T+0.97ms,Reader 10393ms”。它最终会恢复正常。
我四处寻找有关 READER 声明告诉我的文档,但收效甚微。这是否意味着将结果流式传输回 Web 服务器所需的时间是多少?无论如何,如果有人知道这里会发生什么,我将不胜感激。如果有人想要,我可以发布 LINQ 代码,但就像我说的,我非常有信心它生成的 SQL 是好的。
谢谢
编辑:我可能会提到一件事:这是在中等信任下运行的共享托管环境中。此外,如果相关,这里是超时堆栈跟踪:
System.Data.EntityCommandExecutionException:执行命令定义时出错。有关详细信息,请参阅内部异常。---> System.Data.SqlClient.SqlException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,布尔 breakConnection) 在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData() 在 System.Data.SqlClient.SqlDataReader.get_MetaData() 在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior,