在SQL Server 2012中删除10亿条记录的最佳方法是什么?

在SQL Server 2012中删除10亿条记录的最佳方法是什么?,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我在一张表中有10亿条记录。我正在尝试删除这些具有两个字段值的记录。但这花了太多时间。所以,您能告诉我任何解决方案吗。如果您想删除所有十亿条记录,只需将其截断即可。如果您希望某些记录存在,您可以使用queryDELETE FROM…如果您只能使用TRUNCATE 否则,复制要保留在临时表中的内容,从临时表中截断并重新插入 SET ROWCOUNT 500 一次删除500个 select 1 -- Just to force @@rowcount > 0 while @@ROWCOU

我在一张表中有10亿条记录。我正在尝试删除这些具有两个字段值的记录。但这花了太多时间。所以,您能告诉我任何解决方案吗。

如果您想删除所有十亿条记录,只需将其截断即可。如果您希望某些记录存在,您可以使用query
DELETE FROM…

如果您只能使用TRUNCATE 否则,复制要保留在临时表中的内容,从临时表中截断并重新插入

SET ROWCOUNT 500
一次删除500个

select 1    -- Just to force @@rowcount > 0
while @@ROWCOUNT > 0
delete from [table]
[where ...]

此表中是否有要保留的行?如果不关心这些行,请使用TRUNCATE。不会存储撤消日志。或者复制临时表中所需的行,删除此表并重命名临时表。这是一个真正的问题吗?还有,为什么它被标记为mysql,oracle?不,我不想清空我的表。我只是想删除一些字段值为10亿的记录,但这花费了太多的时间。我正在尝试删除一些字段值为10亿的记录。所以这花费了太多的时间。