我注意到在向查询添加.ToArray()或.ToList()时,数据库查询运行得更快.这是因为数据集被加载到内存中,所有后续查询都是在内存中完成而不是进行进一步昂贵的数据库调用吗?
对于数据库查询的内存存储应该有什么限制,因为我担心耗尽太多的内部内存会降低整个项目的速度,因为我确信占用过多的内存存储会大大减慢速度.
编辑:这是为Linq-SQL查询.我正在使用SQL Server 2008.
示例1:执行大型数据库查询并在内存中过滤
我有一个包含5 000行的数据库表.我查询整个表(例如SELECT*From Clients).我接下来的几个查询基于上一个查询中的字段:a)获取所有男性客户; b)获取所有女性客户c)获取FirstName以A开头的所有客户端.
示例2:执行更频繁的数据库调用
使用具有5000行的相同Client表,我需要执行3个查询a)获取所有男性客户端; b)获取所有女性客户端c)获取FirstName以A开头的所有客户端.我通过数据库调用而不是内存来执行所有查询.
哪种方法更有效?