我已經繼承了一些C#/ ASP.NET MVC /實體框架項目緩慢。數據庫中沒有太多數據,但致電.Include()
導致速度變慢。實體框架+ LINQ緩慢與字符串查詢速度?
但是,我發現了一些很奇怪的東西。我有一個只有數字(5列)的2k行表。我在我正在搜索的列上有索引。
在做:
_entities.MyTable.Where(x=> x.Id1 == 4 && x.Id2 == 5).First()
它需要我的開發機器上1800ms。
然而,當我這樣做:
_entities.MyTable.Where("it.Id1 = 4 and it.Id2 = 5").First()
它需要像10毫秒。
這是怎麼回事?我不明白爲什麼LINQ表達式會這麼慢。
嘗試在LinqPad中解開它,並將其生成的SQL查詢與您自己的 – Tigran 2012-04-06 07:04:30
進行比較是否在任何實體中繼承MyTable? – daryal 2012-04-06 07:23:19
@daryal對不起,在EF的情況下,我仍然是一個小菜鳥,那會是什麼樣子?這個對象/模型與其他對象有關。表中的數字是其他表的外鍵。 – 2012-04-06 07:25:34