0

我有一个问题,为了获得更好的 linq 查询性能,使用 select 扩展只选择我们需要的字段而不是整个字段更好吗?!!!

我有一个表格“新闻”,它有文件(id、title、text、regtime、regdate、username,...),其中的文本字段是很长的文本,每行都必须有很大的尺寸。所以我决定在索引页面中更改这个查询,它不显示来自这个的新闻文本

var model=db.News.ToList();

对这个

var model=db.News.Select(n=>new NewsVM(){ id=r.id, title=r.title, regtime=r.regtime,...});

我提琴两个查询和接收的字节是相同的

4

1 回答 1

1

Fiddler 不会监控从 Sql Server 发送到 webserver 的数据。Fiddler 只会显示视图生成的 HTML 的大小。

所以回答你的问题,是的!如果您只要求您需要的字段而不是要求所有字段,或者盲目地使用 select 方法,性能会好得多。Sql Server 应该/可以更快地运行查询。它可能能够直接从索引中检索您要求的所有字段,而不必实际读取每一行。还有许多其他原因,但它们更具技术性。

至于网络服务器,它也将执行得更快,因为它不必从 sql 服务器接收尽可能多的数据,并且它将使用更少的内存(留出更多的内存可用于缓存等)。

一个很好的类比是,如果我问你图书馆前 10 本书的第一个单词,如果你必须先将每本书的全部内容复制到笔记本上,然后给我第一个单词,会不会更快,或者如果你只写下每本书的第一个单词会更快。两个答案都只有 10 个字长。

于 2013-06-03T15:24:07.380 回答