问题:我试图从数据库中获取大量条目并将其绑定到gridview,这使我的网站性能非常低。 我用过的:我已经索引了搜索时主要涉及的参数。另外,我在会话中使用数据库返回查询并在分页时使用它,而不是再次访问数据库。
我想要什么?我们有什么方法可以从数据库中检索网格页面大小的条目。我的网格页面大小为10.因此,10个条目将大大提高网站的性能。由于datagrid中有许多字段并且获取它们需要时间。那么有这样的解决方案吗?
查询代码:
R1.DBLinqRDataContext objDB = new R1.DBLinqRDataContext();
return ( from p in (from a in objDB.table1
orderby a.date descending
join i in objDB.table2
on a.ID equals i.ID
where ((SqlMethods.Like(a.Location, "%" + loc + "%")) && (Category != String.Empty ? (Category == "1" ? a.Func < 50 : a.Func > 50) : (SqlMethods.Like(a.loc, "%" + loc + "%"))))
select a) join r3 in objDB.table3 on p.ID equals r3.CompanyID select p).Distinct().ToList();
任何帮助?
如果有更多细节请询问....谢谢
答案 0 :(得分:1)
对于另一个答案,做一个[查询] .Skip(x).Take(y)工作得很好,但检查你何时进行跳过并接听你正在调用IQueriable版本而不是IEnumerable版本的调用。
如果您调用IQueriable版本,则会将其合并到查询中。 IEnumerable将执行查询,然后在内存中运行分页,您将失去所有性能提升。
答案 1 :(得分:0)
尝试阅读this