【发布时间】:2017-09-16 07:53:11
【问题描述】:
我在 SQL Server 2012 标准数据库中有以下 PipelineArchives 表(恢复模型为“简单”):
该表在Body 列中保存归档数据。这随着时间的推移而增长,现在包含 11,914 行,总共 53gb 的数据。我想执行一个查询,删除在当前日期 - 3 个月之前具有 CreatedOn 值的所有行。
我试着跑了
DELETE FROM PipelineArchives
WHERE CreatedOn < MyDate
当MyDate 条件产生几行时,查询将在几秒钟内从 SSMS 执行正常。但是,将日期增加到 229 行需要 30 秒。
有没有更有效的方法来删除行?
【问题讨论】:
-
抱歉 - 什么是 EAV?
-
将 > 当前日期 - 3 个月的行复制到另一个表中。删除原表,重命名....
标签: sql sql-server tsql