关于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 生成的效率高点吧。 没测试过
[解决办法]
[解决办法]
- 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