【发布时间】:2017-06-01 15:34:13
【问题描述】:
我想从数据库中获取数据,以显示在页面上。表中有大量行,所以我使用页面来避免永远滚动。
我有搜索字词(没有特定列)、按任何列排序、显然可以更改页面大小和我所在的页面的功能。
理论上,我可以只向数据库询问所有内容(SELECT * FROM myTable),将其发送到我的 html 视图,然后完全在 javascript 中处理数据。问题是,有这么多的数据,使用我的结构(页面控制器调用我的主逻辑,它调用一个 web 服务,它调用数据库)非常慢,有时等待页面的原始加载长达 20 秒。加载后,javascript 通常很快。
或者,我可以使用 Linq 在控制器中完成大部分工作。我也可以在网络服务(它是我的)中完成工作,仍然在 Linq 中。或者,我可以直接使用 WHERE、ORDER BY、COUNT 和一堆动态 SQL 请求,以便立即从数据库中获得我想要的内容。但其中任何一个都会迫使我在每次参数更改时刷新页面。
所以我想知道性能。例如,哪个更快:
var listObjects = ExecuteSQL("SELECT * FROM myTable");
return listObjects.Where(x => x.field == word).OrderBy(x => x.field);
和
var listObjects = ExecuteSQL("SELECT * FROM myTable WHERE field = :param1 ORDER BY field", word);
return listObjects;
在哪些特定情况下使用我提到的不同方法会更好或更差?
【问题讨论】:
标签: javascript c# sql linq