我从SQL Server 2008的表中删除了2.57亿行。我不能截断它。 虽然我可能会做得更聪明。
2个小时进入删除,日志文件增长,我没有磁盘空间。 查询仍在运行。
我该怎么办? 删除成功了吗?
等待tx回滚,删除将不会成功。 或者加载备份 – 可能会更快。
要么以增量(一次10.000)的方式删除,要么确保你的服务器足够处理你的需求。 所有这些都可以在那里完成。
你需要保留多less条logging,而不是2.57亿条删除? 如果该数字较小,则将这些logging批量插入到一个新表中,使用ALTER TABLE SWITCH切换表,然后删除旧表。
http://jahaines.blogspot.com/2009/12/sql-server-2005-how-to-move-10-millions.html
另一个有趣的想法是设置分区并删除较旧的分区。
http://blogs.msdn.com/b/bartd/archive/2010/06/01/purging-data.aspx