xxxx.Table.Where(m => xxxx.Contains(m.Id) && m.ExpireDate < DateTime.Now).ToList()
从150k条记录中找出 4k数据的样子
这样一个语句 查询非常慢。 需要4秒。
可是分析以后,发现不是数据库问题。 数据库查询只花了30ms。
求教。问题可能出现在哪里呢?
针对之前所说的界面问题。
现在不涉及任何绑定。 值就是哪一个语句
xxxx.Table.Where(m => xxxx.Contains(m.Id) && m.ExpireDate < DateTime.Now).ToList()
加上 Stopwatch 得到的结果
确定和 生成的 sql语句一样吗?
这不是重点。 重点是慢.
sql 语句 用Profiler 跟踪过。 只用了不到30ms.
所以就有点儿不明白为什么会这么慢
在代码里设置时间跟踪LOG, 看时间发在哪了
还有这个xxxx是不是本地数据了
你确定你是在局域网里面干的这事?还是服务器在远程?
一般软件显示数据会有几个地方卡,
1、查询卡,你说只有30S
2、传输卡,网络速度或是网络问题。
3、界面绑定卡,控件处理问题。
我觉得你的问题不是数据库的事,也不是EF的事,你是不是在界面上对查询出的数据又做了其它处理,估计慢的地方是这块处理的程序。