У меня есть таблица базы данных (работает на SQL Server 2012 Express), которая содержит ~ 60 000 строк.
Я использую следующий код для очистки старых строк:
//Deleting CPU measurements older than (oldestAllowedTime)
var allCpuMeasurementsQuery = from curr in msdc.CpuMeasurements where
curr.Timestamp < oldestAllowedTime select curr;
foreach (var cpuMeasurement in allCpuMeasurementsQuery)
{
msdc.CpuMeasurements.Remove(cpuMeasurement);
}
Когда количество удаленных строк велико (~ 90% или более записей в таблицах удаляются), операция выполняется исключительно долго. Для завершения этой операции требуется примерно 30 минут на относительно сильной машине (рабочий стол Intel I5).
-
Это похоже на нормальное поведение?
-
любые идеи о том, что я могу сделать, чтобы сократить время работы?
Спасибо,