首页 新闻 赞助 找找看

LINQ性能优化问题

0
悬赏园豆:50 [已关闭问题] 关闭于 2010-08-11 16:41

            IEntityObject EntityObj = SqlHelper.GetEntityObject();
            COMMONEntities PubDb = (COMMONEntities)EntityObj.GetDataModel(SystemType.H0);
            MZYSEntities MzDb = (MZYSEntities)EntityObj.GetDataModel(SystemType.HH);

            var query = from q in MzDb.OUTP_JZJLK.Where("it.JLZT==true")
                        where q.GHRQ.StartsWith(_StrCxrq)
                        select q;
            var wwwww = from a in query.ToList()
                        select a.PATID;
            decimal[] ww = new decimal[wwwww.ToArray().Length];
            ww = wwwww.ToArray();
            var query1 = from a in query.ToList()
                         from b in PubDb.PUB_MZBRXXK
                         where ww.Contains(b.PATID)
                         select new{....}

问题:query里面有4000行数据,表PubDb.PUB_MZBRXXK里面有100W行数据,现在要在表PubDb.PUB_MZBRXXK中找出上述4000行数据的信息库。。

hero0101的主页 hero0101 | 初学一级 | 园豆:160
提问于:2010-08-11 10:18
< >
分享
所有回答(5)
0

扔给数据库去执行,别在Linq中做。

Launcher | 园豆:45045 (高人七级) | 2010-08-11 10:33
0

表PubDb.PUB_MZBRXXK里面有100W行数据。。

100W行的数据如果还用LINQ做的话程序会非常慢的,建议还是写存储过程然后用过EF调用存储过程。

没必要所有东西都用ORM做,性能和效率上不可能并存的,有时候还是要取舍的

kyo-yo | 园豆:5587 (大侠五级) | 2010-08-11 10:36
0

用SQL或存储过程去数据库查出自己想要的数据,不用的不查。

Astar | 园豆:40805 (高人七级) | 2010-08-11 10:45
0

放在存储过程里吧,

jowo | 园豆:2834 (老鸟四级) | 2010-08-11 11:03
0

用EF调用存储过程吧。

阿松 | 园豆:601 (小虾三级) | 2010-08-11 14:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册