用linq分页效率如何?

zhanglong_longlong 2013-04-18 04:48:42
return ielist.Skip<T>(index * pageSize).Take<T>(pageSize);

直接用的linq to sql 分页,不知道效率如何?请大神指教
...全文
507 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lonely_net 2014-12-17
  • 打赏
  • 举报
回复
引用 13 楼 keinshen 的回复:
搭车同问一个问题 如果我是多表联结查询呢?怎么用LINQ TO SQL 做分页?
可以做视图 然后用Linq
kavi676869 2014-02-23
  • 打赏
  • 举报
回复
楼上的都是神人啊!!!!!!
md5e 2013-04-19
  • 打赏
  • 举报
回复
引用 18 楼 caozhy 的回复:
引用 16 楼 liuchaolin 的回复: 只能说是各有春秋,linq 应该是一次性把数据取回来,然后在内存中做分页,优点是第一次慢,但后边分页都很快,缺点也是他的优点,当数据量很大时,可能由于第一次的响应过长而被服务器报出超时异常 sql 分页一次只读部分数据回来,可以减少超时异常,但他的缺点就是越到后边的数据,响应的时间就越长(不过很少有人去读后边的数据吧) linq 应该是一次……
很明显的啊,没有数据怎么编号排序,只不过一个是在数据库中编号,一个是内存中编号,总这最后都是要有顺号,要不怎么做分页断点
threenewbee 2013-04-19
  • 打赏
  • 举报
回复
引用 16 楼 liuchaolin 的回复:
只能说是各有春秋,linq 应该是一次性把数据取回来,然后在内存中做分页,优点是第一次慢,但后边分页都很快,缺点也是他的优点,当数据量很大时,可能由于第一次的响应过长而被服务器报出超时异常 sql 分页一次只读部分数据回来,可以减少超时异常,但他的缺点就是越到后边的数据,响应的时间就越长(不过很少有人去读后边的数据吧)
linq 应该是一次性把数据取回来,然后在内存中做分页 请不要“应该是”,sp1234说的很清楚,你应该求证下。
  • 打赏
  • 举报
回复
引用 9 楼 caozhy 的回复:
效率和直接用sql差不多,也并非“大数据量”不适合。也不知道信口胡说的人怎么想的。 linq to sql幕后还是调用sql查询,而不是客户端处理,所以它的效率和你直接操作数据库没有什么差别。
++ 我目前做的项目几乎没差别
md5e 2013-04-19
  • 打赏
  • 举报
回复
只能说是各有春秋,linq 应该是一次性把数据取回来,然后在内存中做分页,优点是第一次慢,但后边分页都很快,缺点也是他的优点,当数据量很大时,可能由于第一次的响应过长而被服务器报出超时异常 sql 分页一次只读部分数据回来,可以减少超时异常,但他的缺点就是越到后边的数据,响应的时间就越长(不过很少有人去读后边的数据吧)
tiantian2324 2013-04-19
  • 打赏
  • 举报
回复
大批量 数据 确实 没 SQL 效率高
二当家 2013-04-19
  • 打赏
  • 举报
回复
搭车同问一个问题 如果我是多表联结查询呢?怎么用LINQ TO SQL 做分页?
骑猪看海 2013-04-19
  • 打赏
  • 举报
回复
大批量LINQ处理还是不错的,内部应该有缓存机制吧,没用过ORM。自己测试下吧
ycg_893 2013-04-19
  • 打赏
  • 举报
回复
最简单的办法就是测式,看Linq生成的sql与你想要生成的Sql对比,谁快用谁,用ORM也不一定要非得用他来查询。 另外:Ling to Sql 也不是一次将数据加载的,也是采用分页的方式加载,他的缓存并不是将所有数据加载后缓存的,而是的读过的记录缓存。
c11_11_11 2013-04-19
  • 打赏
  • 举报
回复
楼上一片信口雌黄,我建议还是自己测试一下吧,linq本质上也是生成分页sql,我不知道楼上说linq分页没有sql效率高的理论依据在哪里?
sosoben 2013-04-19
  • 打赏
  • 举报
回复
引用 7 楼 sp1234 的回复:
请自己测试。当你需要三天盖起一个茅草房时,你会去幻想着“等明天必须盖起一个富丽宫殿”吗?那纯粹是不懂辨证。
但是很多时候我们不一定要建起了富丽宫殿才能知道其建筑难度及建筑成本,可以找有经验的人先问问嘛
GodDices 2013-04-19
  • 打赏
  • 举报
回复
ORM在大量数据面前,我只能hehe
threenewbee 2013-04-19
  • 打赏
  • 举报
回复
引用 19 楼 liuchaolin 的回复:
引用 18 楼 caozhy 的回复: 引用 16 楼 liuchaolin 的回复: 只能说是各有春秋,linq 应该是一次性把数据取回来,然后在内存中做分页,优点是第一次慢,但后边分页都很快,缺点也是他的优点,当数据量很大时,可能由于第一次的响应过长而被服务器报出超时异常 sql 分页一次只读部分数据回来,可以减少超时异常,但他的缺点就是越到后边的数据,响应的时间就越长(不过很少有人……
linq to sql在支持rownumber的数据库上会产生聪明的sql。
threenewbee 2013-04-18
  • 打赏
  • 举报
回复
效率和直接用sql差不多,也并非“大数据量”不适合。也不知道信口胡说的人怎么想的。 linq to sql幕后还是调用sql查询,而不是客户端处理,所以它的效率和你直接操作数据库没有什么差别。
楉枫 2013-04-18
  • 打赏
  • 举报
回复
Linq处理小数据量还是不错的,使用简单、明确。不过大数据量不就建议使用它了, 使用SQL来分页是一个不错的选择,我前段是时间在 IT分享 博客上看见一片关于SQL分页的实现方法和 SQL语句写法。
  • 打赏
  • 举报
回复
请自己测试。当你需要三天盖起一个茅草房时,你会去幻想着“等明天必须盖起一个富丽宫殿”吗?那纯粹是不懂辨证。
webdiyer 2013-04-18
  • 打赏
  • 举报
回复
你可以用sql profiler查看和分析一下它生成sql语句就大概了解了,不同版本的sql server,它生成的sql分页语句也不同。
  • 打赏
  • 举报
回复
小数据量用linq吧,写起来简单 句意也很明确。 大数据量建议用sql 可以自己做个表 插入100W数据了做做测试
血痕123456 2013-04-18
  • 打赏
  • 举报
回复
没做过LINQ分页
加载更多回复(3)

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧