SQL批量删除
发布时间:2020-12-12 06:24:48 所属栏目:MsSql教程 来源:网络整理
导读:我在SQL Server 2005中有一个表,其中有大约40亿行.我需要删除大约20亿的这些行.如果我尝试在单个事务中执行此操作,则事务日志将填满并失败.我没有任何额外的空间使事务日志更大.我认为最好的方法是批量删除语句(分批?10,000?). 我可以用光标来做这个,但是这
我在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' ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |