目标是减少COLUMN_1从表格查询中删除的时间。现在这可能需要15-30分钟。
目前来自表的数据被级联规则删除。 COLUMN_1是外键。 我想改变这种方法,以便在删除父行时在BEFORE触发器中截断整个分区。
此外,COLUMN_2会从应用程序中查询数据。
这两个栏目的关系如下:
COL_1 COL_2
1 1
2
3
4
2
5
6
7
8
9
10
3
11
12
13
...
两者都有索引。 表有数百万条记录。有很多插入和读取操作。
经过一些研究(oracle doc)后,我会使用范围分区 我需要动态创建分区,因此可能适合Range Interval Partitioning ...
答案 0 :(得分:0)
有两种选择:
将分区N_Partition切换到新的空表并截断该表:
ALTER TABLE big_table EXCHANGE PARTITION N_partition WITH TABLE table_to_be_truncated INCLUDING INDEXES WITHOUT VALIDATION UPDATE GLOBAL INDEXES; TRUNCATE TABLE table_to_be_truncated
ALTER TABLE big_table TRUNCATE PARTITION N_partition UPDATE INDEXES;
这是一篇很好的文章,介绍了如何使用分区:Maintaining Partitions