1
使用StackExchange.Profiling.MiniProfiler
類來對Linq-To-Sql作爲ORM的ASP.NET MVC應用程序進行概要分析。如何改進Linq-To-Sql代碼
我試圖減少一個動作到一個SQL,以便我沒有任何重複了。 因此,我相應地更改了我的linq-to-sql代碼,但它對速度沒有任何正面影響。
然後我檢查了SQL所需的時間。
這顯示了MiniProfiler:
當我火了Management Studio中完全相同的SQL它是超級快:
下面是代碼:
from t in type
let tDoc = (from d in context.documents
where d.Key == t.No
&& d.RType == (int)RType.Art
&& d.AType == (int)AType.Doc
select d).FirstOrDefault(d => d.UseForThumb)
select new Time
{
Id = t.Id,
//... more simple mappings here
// then a complex one:
DocsCount = context.documents.Count(d =>
(d.Key == t.Id.ToString()
&& d.RType == (int)RType.Type
&& d.AType == (int)AType.Doc)
||
(d.Key == t.No
&& d.RType == (int)RType.Art
&& d.AType == (int)AType.Doc)),
// and another one
ThumbId = (tDoc != null && tDoc.FRKey.HasValue) ? tDoc.FRKey.Value : 0
};
Wha t可以成爲巨大差異的原因嗎? - 編輯:沒有區別,我只是misenterpreted SSMS :(
不管怎麼說,我的問題persits我可以改變什麼,使其更快
我讀一段,從LINQ的 - 到 - 映射? SQL有一個性能問題是有沒有辦法解決這個
您的表現相同:代碼和SSMS中的1sec,不是嗎? – 2013-04-25 13:27:49
哦,是嗎?我雖然在SSMS是1毫秒!尷尬!獲取這12行的速度仍然很慢...... – 2013-04-25 13:41:32
使用fdottrace來判斷髮生了什麼事,不要再猜測了! – 2013-04-25 14:36:44