前端之家收集整理的这篇文章主要介绍了
SQL批量删除,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在
sql Server 2005中有一个表,其中有大约40亿行.我需要
删除大约20亿的这些行.如果我尝试在单个事务中执行此操作,则事务日志将填满并失败.我没有任何额外的空间使事务日志更大.我认为最好的
方法是批量
删除语句(分批〜10,000?).
我可以用光标来做这个,但是这样做的标准/简单/聪明的方式呢?
附:此表不具有作为PK的身份列. PK由整数外键和日期组成.
您可以“
删除”
删除,这也意味着您不会对
数据库造成大量
负载.如果您的t-log备份每10分钟运行一次,那么您应该在同一时间间隔内运行一次或两次.您可以将其调度为
sql代理作业
尝试这样的东西:
DECLARE @count int
SET @count = 10000
DELETE FROM table1
WHERE table1id IN (
SELECT TOP (@count) tableid
FROM table1
WHERE x='y'
)
原文链接:https://www.f2er.com/mssql/79223.html