2011-03-14 53 views
1

我有一张表,每天存储数百万条记录(即第1天y,000,000,第2天前y,000,000记录+ x,000,000新等)。我想通过每小时过程删除特定的记录(假设这些记录是id_name ='PB-HQ'),但使用DELETE命令时,每次从运行过程开始逐行搜索过程时,都需要足够的时间作为表。有没有其他解决方案(使用cusror-fetch ???)PL SQL - 快速删除

+2

id_name是否已编入索引? – 2011-03-14 12:36:10

+0

你有没有考虑过正常化桌子?如果'id_name'是一个字符串,它可能会伤害表演。 – Kobi 2011-03-14 12:50:32

回答

-1

为什么?如果您不想在表中使用id_name ='PB-HQ'的记录,也许最好的解决方案是不插入它们,而不是每小时删除一次。如果你需要一段时间,放入另一张桌子,看看截断表。

1

一种选择是通过id_name(也许是基于列表的分区)对表进行分区,然后您只需截断PB-HQ的分区。