У меня возникают проблемы с производительностью при запуске службы Windows, в первом раунде мой lstSps длинный (около 130 хранимых процедур). Есть ли способ ускорить это (за исключением ускорения хранимых процедур)?Проблемы с производительностью, выполняющие список хранимых процедур
Когда перебег закончился и переходит во второй раунд, он идет быстрее, потому что на TimeToRun() не так много вернется. Но, моя озабоченность в первый раз, когда есть много более хранимых процедур для запуска.
У меня есть вопрос о создании массива и цикла цикла, так как я читал, что это быстрее, но я считаю, что проблема в том, что процедуры длится долго. Могу ли я построить это лучше? Может быть, использовать несколько потоков (по одному для каждого исполнения) или что-то в этом роде?
бы реально оценить некоторые советы :)
EDIT: Просто чтобы прояснить, это метод HasResult() выполняет СП: с и заставляет искать время, принимая ..
lock (lstSpsToSend)
{
lock (lstSps)
{
foreach (var sp in lstSps.Where(sp => sp .TimeToRun()).Where(sp => sp.HasResult()))
{
lstSpsToSend.Add(sp);
}
}
}
while (lstSpsToSend.Count > 0)
{
//Take the first watchdog in list and then remove it
Sp sp;
lock (lstSpsToSend)
{
sp = lstSpsToSend[0];
lstSpsToSend.RemoveAt(0);
}
try
{
//Send the results
}
catch (Exception e)
{
Thread.Sleep(30000);
}
}
До тех пор, пока вы не профилировали его, мы не можем вам помочь на самом деле ... –
Помощь, которую я хочу, не ускоряет все хранимые процедуры, а находит лучший способ их выполнения, поэтому я не выполните 1. Выполняйте все хранимые процедуры (подождите, пока все будет завершено) 2. Начните обработку результата – MrProgram