我有一个包含约 60,000 行的数据库表(在 SQL Server 2012 Express 上运行)。
我正在使用以下代码清除旧行:
//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 分钟。
这看起来像正常行为吗?
关于我可以做些什么来减少手术时间的任何想法?
谢谢,