有关从数据库中删除旧记录的问题

时间:2011-04-05 16:16:46

标签: sql-server tsql

所以我有一个SQL Server表。

此表有一列显示插入日期的时间。

如何运行始终删除24小时记录的内容?

3 个答案:

答案 0 :(得分:3)

是的,请看一下:How to: Schedule a Job (SQL Server Management Studio)

然后只安排您的查询:

delete from table_name where date_created < dateadd(d,-1,GETDATE())

答案 1 :(得分:3)

我在讨论中添加了几件事......

  1. 要避免扫描主键,请确保在给定的日期时间列上有索引(唯一或不依赖于数据)。
  2. 还要检查您尝试使用的语句的执行计划,并考虑将其包装在事务中并进行后续回滚,以便您可以重复该过程并评估差异。
  3. 例如: 比较

    date_created < dateadd(d,-1,GETDATE())
    

    date_created < getdate()-1
    

    显示dateadd功能为评估增加了相当大的开销,虽然它比扫描PK更快,但总是更好地拍摄最快的选项。

答案 2 :(得分:2)

DELETE FROM <tableName> WHERE <col> < getdate()-1