【发布时间】:2019-10-24 06:08:33
【问题描述】:
我在表中有数百万条记录并且每秒累积,所以每当记录标记为 COMPLETE 时,我想将该记录移动到备份表中。 我将定期运行这项工作。另外我不想通过这个移动操作中断数据库中的其他操作。
我已尝试以下查询。
insert into Table_Bakup
select * from Table where batch_status ='COMPLETED'
and ID not in (select ID from Table_Bakup )
delete from Table
where ID in (select ID from Table_Bakup )
但是上面的查询性能会受到影响。谁能建议我如何实现这一目标?
【问题讨论】:
-
我知道您可以创建一个
AFTER UPDATE触发器来执行此操作。一旦行更新,将数据插入备份表,然后从主表中删除。 -
您希望从这个练习中获得什么好处?您的基表存在哪些性能问题?
标签: sql oracle performance archiving