【发布时间】:2016-02-05 16:50:27
【问题描述】:
在 SQL Server 2008 R2 中,我有一个包含超过 10 亿行的表(数据库大小为 450 GB),我想通过删除从当前日期算起超过 180 天的所有记录来清除它。这里的任何帮助将不胜感激!
我正在使用以下查询:
DELETE FROM table name
WHERE column name < '2015-01-01'
但这需要太多时间。是否有任何维护计划或任何查询,以便我可以快速删除数据?
【问题讨论】:
-
超过 180 天的行的百分比有多大?也许将它们移动到不同的表,截断原始表并重命名表/将行复制回来更容易。否则,您可能希望批量删除较少数量的行
-
无论你最终做什么,无论如何都必须使用某种日期过滤,并最终花费相同的时间。虽然也许去另一个方向更快。将任何记录
>= 2015-01-01复制到另一个表,然后删除原始记录 - 特别是如果较新的记录只是整个十亿记录的一小部分。 -
亲爱的朋友们....在我的数据库中添加了图像行大小和数据大小。
-
什么版本的 SQL Server?标准?企业?
标签: sql sql-server sql-delete