我正在使用實體框架來調用存儲過程。我有一個場景,這個過程被稱爲3000次,然後對於這3000個存儲過程調用中的每一個,另一個存儲過程將被調用1到100次。大約需要20分鐘。我想把那段時間減半。有什麼我可以做的,以優化這個?存儲過程對大插入/更新使用實體框架
基本上這是發生了什麼事:
foreach (var parentObject in parents) //parents.count = 3000
{
int id = _efContext.prInsertParent(parentObject.Name, parentObject.values, etc..);
// Have to get SCOPE_IDENTITY() id to be able to add children
foreach (var child in parentObject.Children) //children count up to 100 items
{
_efContext.prInsertChild(id, etc..othervalues);
}
}
就個人而言,我會重新考慮架構。 3000個存儲過程調用不應該被接受,並且在額外的100個調用受到指數影響時更是如此。那麼,最壞的情況下,30萬電話? – DvS