[英]Fastest way to fetch huge amount of data from SQL Server database
我在数据库中有超过50,000条记录,我必须在我的应用程序中处理(并且数量至少增加2000 /天)。
我目前使用的方式是:Linq到数据库中存储过程的实体,它返回一个对象的集合,以便我可以处理它。
但是我注意到它是一个缓慢的,从数据库中获取这么多记录的最有效方法是什么?
我的代码示例:
items = (from f in db.spItems().OrderByDescending(f => f.date)
group f by f.ID into g
select g.FirstOrDefault()).Take(9).ToList();
join ar in db.anothertable on f.ID equals ar.ID
join t in db.thirdtable on ar.tid equals t.ID
spItems是一个获取结果的存储过程,但有时我必须对其进行多次连接
我会先尝试优化您的查询。 SSMS的速度慢吗? 你使用适当的指数吗? 你需要所有专栏吗? 最重要的是:您是否需要显示所有50000行?
50000条记录的记录并不多,但在Web应用程序中显示所有记录并不常见,因为这意味着您必须为所有记录生成HTML并将其显示在客户端的浏览器中(甚至可能使用ViewState
)。 所以我建议使用数据库分页(通过ROW_NUMBER
函数)来对结果集进行分区,并仅查询要显示的数据(在GridView
每页100行)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.