gpt4 book ai didi

SQL批量删除

转载 作者:行者123 更新时间:2023-12-02 09:04:58 25 4
gpt4 key购买 nike

我在 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'
)

关于SQL批量删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com