linq to entity 与 entity sql 性能

荒烟漫草 2013-03-29 12:48:23
一个是用linq to entity写的
一个是entity sql写的
性能杂差别老大呢

linq to entity
100000
00:00:00.8281250
基本在0.8-1之间

entity sql
100000
00:00:00.3593750
基本在0.3-0.5之间

都是加载10W条数据



IEnumerable<HanModel.Models.ViewModel.Fs_NewsOrClass> query = (
db.fs_news.OrderByDescending(fn => fn.Click).Join(
db.fs_news_Class, fn => fn.ClassID, fc => fc.ClassID, (fn, fc) =>
new HanModel.Models.ViewModel.Fs_NewsOrClass
{
newsid = fn.Id,
newsTitle = fn.NewsTitle,
class_ename = fc.ClassEName,
class_type = fc.Type_New
})).Take(100000).ToList();
return query;

===============================================================
string sql = "select top 100000 fn.id,fn.newstitle,fc.classename,fc.type_new from fs_news as fn inner join fs_news_class as fc on fn.classid=fc.classid order by fn.click desc";
var cmd = db.Database.Connection.CreateCommand();
db.Database.Connection.Open();
cmd.CommandText = sql;
List<HanModel.Models.ViewModel.Fs_NewsOrClass> fslist = new List<HanModel.Models.ViewModel.Fs_NewsOrClass>();
using (var reader = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess))
{
while (reader.Read())
{
HanModel.Models.ViewModel.Fs_NewsOrClass fs = new HanModel.Models.ViewModel.Fs_NewsOrClass();
fs.newsid = Convert.ToInt32(reader["id"]);
fs.newsTitle = reader["newstitle"].ToString();
fs.class_ename = reader["classename"].ToString();
fs.class_type = reader["type_new"].ToString();
fslist.Add(fs);
}
reader.Close();

}

db.Database.Connection.Close();
return fslist;

...全文
162 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
_JeffreyWu 2013-03-30
  • 打赏
  • 举报
回复
引用 2 楼 tiana0 的回复:
这里有分析 http://hi.baidu.com/honfei/item/f4704157dbd75e948c12edac
这个分析和楼主的问题不一样 楼主问的是esql和linq to entity的性能差异
三五月儿 2013-03-29
  • 打赏
  • 举报
回复
这里有分析 http://hi.baidu.com/honfei/item/f4704157dbd75e948c12edac
q107770540 2013-03-29
  • 打赏
  • 举报
回复
想快? 干吗不用PLINQ 昨天看了一老外的文章,他在文中提出这样一个理论: 现在的程序员根本就在浪费CPU,还处在只用单核CPU的代码思想中,殊不知现在很多客房端早已经进入了多核时代,未来多核也必是一个趋势,所以: 程序员们,尽可能多的在代码中"消费"你的客户端的硬件吧!

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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