如果要删除大量的行,则删除数据库中的行是非常昂贵的过程。
我已经尝试使用CHECKPOINT在每行50000行(需要3-10秒)上运行批量删除,在20mln行的表上删除大约一半,而表正在使用中。在完成这项工作的同时,它减慢了对数据库的访问速度,整个系统及时停止响应。
我可以做些什么来定期删除旧版本而不会过度减慢系统速度?
提到的表有很长的行(数百列),按时间排序(最新更新/插入),我们经常选择最新的,但删除最旧的。
答案 0 :(得分:0)
将过滤的行复制到临时表,截断表并插入新截断的表可以更好地工作。