【发布时间】:2018-10-09 11:23:51
【问题描述】:
使用以下代码在 2 秒内从数据库中提取了大约 2800 条记录
public IEnumerable<T> ExecWithStoreProcedure(string query, params object[] parameters)
{
return db.Database.SqlQuery<T>(query, parameters);
}
但是当转换为列表时,Sql Timeout 来了。我正在将 EntityFramework 与 SQL 数据库一起使用。如何在 15 秒内达到性能。
【问题讨论】:
-
写得不好的查询总是很慢。如果你不能connect 到数据库,你仍然会得到一个超时连接。您发布的内容没有显示任何内容。发布 full 连接,包括调用堆栈(由 Exception.ToString() 返回)。这将显示这是连接超时还是执行超时。同时发布查询本身及其执行计划
-
不知道为什么调用这个方法需要2秒,你是怎么测出来的?应该几乎立即返回。
SqlQuery将只返回尚未执行的查询。 -
我投票决定将此问题作为离题结束,因为无法优化未显示且没有查询计划等必要信息的 sql 查询
-
拨打
db.Database.SqlQuery<T>(query, parameters).First()需要多长时间?
标签: c# sql .net entity-framework ienumerable