首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于LinQ分页效率有关问题

2012-02-01 
关于LinQ分页效率问题分页查第90-100条中的10条Linq代码如下:C# codevar movies (from m in db.Movieswh

关于LinQ分页效率问题
分页查第90-100条中的10条
Linq代码如下:

C# code
var movies = (from m in db.Movies                          where m.ReleaseDate > new DateTime(1904, 6, 1)                          orderby m.ID                          select m).Skip(90).Take(10);            return View(movies.ToList());


我跟踪Linq的SQL语句是
SQL code
--LinQ SQLSELECT TOP 10  A.*FROM    ( SELECT                    * ,                    ROW_NUMBER() OVER ( ORDER BY sd_Key ASC ) ROWS          FROM      dbo.sys_Dictionary        ) AWHERE   A.ROWS > 90


而我们以前用ADO.Net调用SQL语句查询的SQL语句是
SQL code
--ADO.Net手动传入的SQLSELECT  A.*FROM    ( SELECT TOP 100                    * ,                    ROW_NUMBER() OVER ( ORDER BY sd_Key ASC ) ROWS          FROM      dbo.sys_Dictionary        ) AWHERE   A.ROWS > 90


很明显当表中记录很大时,后面的sql语句比linq的sql语句效率高
刚用linq,不知道我理解的对不对,请指教。

[解决办法]
你的表能有多大?
[解决办法]
Linq的方式是否可理解为 数据先取出来,缓存?
[解决办法]

写个循环插个百万条测式数据。。

把两个sql语句放进去。。

看看到底哪个快些。。。

linq比sql慢点其实可以理解。。。


[解决办法]
linq 生成的效率高点吧。 没测试过
[解决办法]
探讨
分页查第90-100条中的10条
Linq代码如下:
C# code
var movies = (from m in db.Movies
where m.ReleaseDate > new DateTime(1904, 6, 1)
orderby m.ID
……

[解决办法]
SQL code
--ADO.Net手动传入的SQLSELECT  A.*FROM    ( SELECT TOP 100                    * ,                    ROW_NUMBER() OVER ( ORDER BY sd_Key ASC ) ROWS          FROM      dbo.sys_Dictionary        ) AWHERE   A.ROWS > 90 

热点排行