私はコードをもっている:
foreach (var idObject in ids)
{
var parsedIDs = ParseId(idObject.id);
var integers = new Dictionary<string, int>() { { "model_id", model }, { "year", 2010 }, { "quarter", 1 }, { "month", 1 }, { "rows", rows }, { "page", page } };
var strings = new Dictionary<string, string>() { { "gr_str", "" }, { "row_id", "" }, { "sidx", sidx }, { "sord", sord } };
var additionals = new Dictionary<string, object>() { { "rowid", idObject.id },
{"contr_group_id_e", parsedIDs[0]},
{"nomencl_group_set1_id_e", parsedIDs[1]},
{"nomencl_group_set2_id_e", parsedIDs[2]},
{"workshop_id_e", parsedIDs[3]},
{"unit_meas_id_e", parsedIDs[4]},
{"plant_id_e", parsedIDs[5]} };
foreach (var datePair in queryDates)
{
additionals["begin_date_e"] = datePair.Key;
additionals["end_date_e"] = datePair.Value;
var parameters = InitParams(integers, strings, additionals).ToArray();
var lastTimestamp = DateTime.Now;
var queryResults = ModelEntities.ExecuteStoreQuery<ReadyProductIndexes>(Queries.SaleIndexGetRowByID, "Sale", MergeOption.NoTracking, parameters).ToList();
Debug.WriteLine("TIme: " + (DateTime.Now - lastTimestamp).TotalSeconds);
}
Debug.WriteLine("rowid " + idObject.id);
}
問題があります。最初のforeach
ステップではすべてが正常に機能しますが、2番目のクエリと他のクエリの動作が非常に遅くなり始めました(たとえば、最初のステップで0.2秒、2番目のステップで8秒)。
私のコードの何が問題になっていますか?
編集:私はMS SQLプロファイラーを使おうとしましたが、興味深いことがいくつかあります-プロファイラーは8秒間のリクエストを表示しますが、プロファイラーからリクエストを手動で実行しようとすると、高速に実行されます。それ、変だよ。