У меня есть таблица базы данных (работающая на 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% или более записей в таблицах) операция занимает исключительно много времени. Для завершения этой операции на относительно мощной машине (настольный компьютер Intel I5) требуется около 30 минут.
это кажется нормальным поведением?
есть идеи о том, что я могу сделать, чтобы сократить время операции?
Спасибо,