Sql server 2008 这会破坏将删除分为更小的组的目的,所以我认为您希望将其放在内部。但是,如果您的需求指定在发生任何故障时回滚所有150万条记录,那么外部是您唯一的选择,在循环中没有任何意义。恢复模式是FULL。也许更改为SIMPLE然后运行DELETE会更快?这会更快,但会
Sql server 2008 这会破坏将删除分为更小的组的目的,所以我认为您希望将其放在内部。但是,如果您的需求指定在发生任何故障时回滚所有150万条记录,那么外部是您唯一的选择,在循环中没有任何意义。恢复模式是FULL。也许更改为SIMPLE然后运行DELETE会更快?这会更快,但会,sql-server-2008,Sql Server 2008,这会破坏将删除分为更小的组的目的,所以我认为您希望将其放在内部。但是,如果您的需求指定在发生任何故障时回滚所有150万条记录,那么外部是您唯一的选择,在循环中没有任何意义。恢复模式是FULL。也许更改为SIMPLE然后运行DELETE会更快?这会更快,但会清除现有的事务日志。可接受程度取决于您的业务需求。DB的停机时间可以接受吗?然后,您可以备份、更改恢复模型、运行删除操作,然后将恢复模型放回原处。恢复模型为FULL。也许更改为SIMPLE然后运行DELETE会更快?这会更快,但会清除现有的事务
这会破坏将删除分为更小的组的目的,所以我认为您希望将其放在内部。但是,如果您的需求指定在发生任何故障时回滚所有150万条记录,那么外部是您唯一的选择,在循环中没有任何意义。恢复模式是
FULL
。也许更改为SIMPLE
然后运行DELETE
会更快?这会更快,但会清除现有的事务日志。可接受程度取决于您的业务需求。DB的停机时间可以接受吗?然后,您可以备份、更改恢复模型、运行删除操作,然后将恢复模型放回原处。恢复模型为FULL
。也许更改为SIMPLE
然后运行DELETE
会更快?这会更快,但会清除现有的事务日志。可接受程度取决于您的业务需求。DB的停机时间可以接受吗?然后,您可以备份、更改恢复模型、运行删除,然后将恢复模型放回原处。
while (1=1) begin
delete top(1000)
from YourTable
where ...
if @@rowcount < 1000 break
end /* while */