首页 新闻 会员 周边 捐助

EF 查询缓慢

0
悬赏园豆:20 [已关闭问题] 关闭于 2014-11-07 15:07

xxxx.Table.Where(m => xxxx.Contains(m.Id) && m.ExpireDate < DateTime.Now).ToList()

 

从150k条记录中找出 4k数据的样子

这样一个语句 查询非常慢。 需要4秒。

 

可是分析以后,发现不是数据库问题。 数据库查询只花了30ms。

 

求教。问题可能出现在哪里呢?

ef
问题补充:

针对之前所说的界面问题。
现在不涉及任何绑定。 值就是哪一个语句
xxxx.Table.Where(m => xxxx.Contains(m.Id) && m.ExpireDate < DateTime.Now).ToList()
加上 Stopwatch 得到的结果

CallMeTommy的主页 CallMeTommy | 初学一级 | 园豆:70
提问于:2014-07-14 16:43
< >
分享
所有回答(5)
0

确定和    生成的 sql语句一样吗?

Qlin | 园豆:2403 (老鸟四级) | 2014-07-14 16:49

这不是重点。 重点是慢.

sql 语句 用Profiler 跟踪过。 只用了不到30ms.

所以就有点儿不明白为什么会这么慢

支持(0) 反对(0) CallMeTommy | 园豆:70 (初学一级) | 2014-07-14 16:54
0

在代码里设置时间跟踪LOG, 看时间发在哪了

 

还有这个xxxx是不是本地数据了

Yu | 园豆:12990 (专家六级) | 2014-07-14 16:57
0

如果是第一次执行,需要考虑EF的初始化时间,参考博文:来,给Entity Framework热热身

dudu | 园豆:29732 (高人七级) | 2014-07-14 17:00
0

你确定你是在局域网里面干的这事?还是服务器在远程?

一般软件显示数据会有几个地方卡,

1、查询卡,你说只有30S

2、传输卡,网络速度或是网络问题。

3、界面绑定卡,控件处理问题。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-07-14 17:17
0

我觉得你的问题不是数据库的事,也不是EF的事,你是不是在界面上对查询出的数据又做了其它处理,估计慢的地方是这块处理的程序。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-07-14 17:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册