Sql MVC中的db查询性能不佳
我已经安装了一个ASP.NET MVC应用程序,并通过azure将其连接到数据库。在本文中,我有一个trafficlog表,其中包含超过1M个条目,当您试图在视图中打开它时,当然会付出代价——所以我实现了分页 这是我用来获取条目的控制器函数:Sql MVC中的db查询性能不佳,sql,sql-server,asp.net-mvc,performance,Sql,Sql Server,Asp.net Mvc,Performance,我已经安装了一个ASP.NET MVC应用程序,并通过azure将其连接到数据库。在本文中,我有一个trafficlog表,其中包含超过1M个条目,当您试图在视图中打开它时,当然会付出代价——所以我实现了分页 这是我用来获取条目的控制器函数: public ActionResult Index(int startIndex){ var trafficlog = db.TrafficLog.OrderByDescending(t => t.time).Skip(sta
public ActionResult Index(int startIndex){
var trafficlog = db.TrafficLog.OrderByDescending(t => t.time).Skip(startIndex).Take(100);
return View(trafficlog.ToList());
}
不幸的是,这非常慢,并且在返回条目之前超时
为什么这是一个问题?我假设只有100个条目会从数据库中被请求,这将使性能非常快速,但它似乎仍然会得到所有条目
使用SQL server explorer并直接联系数据库,我得到了近乎即时的响应,因此我知道SQL server没有问题。您似乎在
time
列中缺少索引。检查你是否有索引,如果不添加索引。请使用探查器捕获正在执行的SQL查询,并在Management Studio中手动执行。您使用的是哪种ORM?将trafficlog添加到手表中,您将看到针对您数据库运行的整个SQL语句。我在本实例中使用实体框架,就像您的时间专栏所需要的那样你检查过了吗?这不会直接影响SQL查询吗?