1

目标是减少 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)我会使用范围-范围分区
我需要动态创建分区,所以范围间隔分区可能是合适的......

4

1 回答 1

0

有两种选择:

将分区 N_Partition 切换到新的空表并截断该表:

    更改表 big_table
    交换分区 N_partition
    WITH TABLE table_to_be_truncated
    包括索引
    未经验证
    更新全球指数;

    截断表 table_to_be_truncated
  • 或截断分区
    ALTER TABLE big_table TRUNCATE PARTITION N_partition
    更新索引;

这是一篇很好的文章,描述了您可以使用分区做什么:维护分区

于 2013-05-29T14:55:29.107 回答