У меня есть база данных SQL, содержащая бирки, загруженные с Yahoo !.Я пытаюсь создать некоторые индикаторы для анализа этих акций (например, простая скользящая средняя).Я обеспокоен производительностью моего запроса, который просто UPDATE @stockname SET SMA = @value WHERE id = @n
.Обновление 2000 строк занимает 2 минуты.Я пытался с хранимой процедурой, но результат почти тот же.
for (int i = 0; i < closing_prices.Count - length; i++)
{
double signalValue signalValue = Selector.SignalProcessor(Signal,
closing_prices.GetRange(i, length), length);
//Write the value into the database
string location = Convert.ToString(i + length + 1);
this.UpdateWithSingleCondition("_" + Instrument, columnName,
signalValue.ToString(), "id", location, "=", sql_Connection);
}
Этот цикл вызывает хранимую процедуру для обновления столбца SMA каждый раз, когда генерируется новое значение.Есть ли возможность поместить непосредственно весь столбец в базу данных?Я думаю, что это может сэкономить время.В любом случае, обновление 500 строк за 2 минуты звучит очень медленно.
Не могли бы вы рассказать, как улучшить время выполнения моего запроса?