我有一個Asp.Mvc5
的網站,我們有索姆性能問題,這裏是我們的模型:Linq的性能問題
我們已經包含部分列表的調查,每個區域有子的列表,每個子節有一系列問題。一個小節可以出現在幾個部分中(我們需要另一個表來存儲小節的順序)。
問題有問題子部分,它確定給定子部分中問題的順序(問題可以存在於幾個子部分中)。
我們有一個公司的列表,每個公司都有一個答案列表。 我們的網站按照上述模型定義的順序顯示給定公司的答案列表。
我弄清楚,以下行需要2秒執行代碼的分析後:
foreach(var section in Survey.ordredBy(s => s.Order)
{
foreach(var subSection in section.SebSections.ordredBy(s => s.Order)
{
foreach(var question in subSection .Questions.ordredBy(s => s.Order)
{
//this query cause a perfermance issues
var answer = company.Answers.Where(c => c.QuestionId == questionId);
}
}
}
你有什麼建議給我解決這個問題? 在此先感謝。
基礎上貼出的代碼,我必須假設你已經有'questionId'的值了。如果這是真的,那麼所有'foreach'語句都是多餘的(不需要),因爲'foreach'語句中的'var'值都不會在任何地方使用。殺死'foreach'語句。 –