历史记录表上的客房服务



我有一个存储过程,在该过程中,我将来自另一个表的数据保存在历史表中。然而,我不希望我的历史表变得太大,我想删除超过1周的条目。实现这一目标的最佳方法是什么?

INSERT INTO table_h
SELECT
*
FROM
table;
COMMIT;

一种方法是将deletewhere子句一起使用:

delete from t
where datecol < trunc(sysdate) - interval '7' day;

不过,最好的方法可能是按周(或天(对表进行分区。然后在分区变老时将其删除。删除分区通常比删除单个记录快得多。

最新更新