为了账号安全,请及时绑定邮箱和手机立即绑定

linq to entities

linq to entities

萧十郎 2018-11-28 22:08:59
场景如下:.net 4 + silverlight5 +wcf ria services + sql2008问题:有两张表表名:A  (203万条记录)表名:B (65万条记录)表名:C (10万条以内)linq to entities语句如下:Expression<Func<A,bool>> exp=m=>true;List<A> lista= this.ObjectContrxt.A.Where(m.Compile()).Take(100).tolist;查询结果:表A 偶尔在5分钟内能完成,多数超时:    同时sql服务器内存疯涨1.5G以上。表B 可在50秒内完成。表C总可以在30秒内完成。无错。 假如把List<A> lista= this.ObjectContrxt.A.Where(m.Compile()).Take(100).tolist;改成这样,就是不用expressionList<A> lista= this.ObjectContrxt.A.Where(m=>true).Take(100).tolist;30秒内有结果,无错。最怪的还在下面:List<A> lista= this.ObjectContrxt.A.Where(m=>m.xm.Contains("圆")).Take(100).tolist;这个30秒内完成,如果改成List<A> lista= this.ObjectContrxt.A.Where(m=>m.xm.Contains("圆圆")).Take(100).tolist; 多一个原字,60秒内也能完成,再查一次30秒内能完成,但如果改成“高圆圆”,像这样List<A> lista= this.ObjectContrxt.A.Where(m=>m.xm.Contains("高圆圆")).Take(100).tolist; 那么又变成5分钟内不能完成。 我的需求是必须用到expression和contains 如何解决? 难道表记录一多,EF就不好使了?
查看完整描述

2 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

这个应该是sql的问题吧!首先还是看看生成的sql语句。

应该你没有建立索引之类的问题。


查看完整回答
反对 回复 2018-12-02
  • 2 回答
  • 0 关注
  • 545 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信