Oracle Database 18c:如何在线合并分区和子分区

本文将介绍如何在并发事务进行时在线合并分区。
首先创建一个示例表并将一些示例数据加载到其中以执行合并。

2. 加载示例数据

创建示例表后,我们可以将一些示例数据加载到其中。
收集要验证的表的统计信息。

-- Load some sample data
-- Gather the Stats
exec DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'PARTUSER', TABNAME=>'ONLINEMERGEPARTITION', ESTIMATE_PERCENT=>DBMS_STATS.AUTO_SAMPLE_SIZE, CASCADE=> TRUE, METHOD_OPT=> 'FOR ALL COLUMNS SIZE 1', GRANULARITY=>'ALL');
更多: zhilu jiaocheng

3. 在线合并分区

  1. 从一个会话中检查条目名称、分区位置、间隔和高值。
    我们将分区 'saleq116' 和 'saleq216' 合并到分区 'saleq216' 中,如下所示:
-- In New Session-1
-- SESS1:
-- Check the Partition Names, Partition Positions, Interval & High Value
select table_name, partition_name, partition_position, interval, high_value from user_tab_partitions where table_name='ONLINEMERGEPARTITION' order by table_name, partition_position;
alter table onlinemergepartition merge partitions saleq116, saleq216 into partition saleq216 online;
  1. 在不同的会话中,我们将设置分区范围:
-- In New Session-2
-- SESS2:
update onlinemergepartition set salesdate='01-JUN-16' where pid=116;
commit;

检查确认

转到会话 1 并检查合并是否成功并交叉验证分区范围。

-- SESS1:
select table_name, partition_name, partition_position, interval, high_value from user_tab_partitions 
where table_name='ONLINEMERGEPARTITION' order by table_name, partition_position;

1.创建表

让我们创建一个示例表“onlinemergepartition”,如下所示。

--- Creating a table
CREATE TABLE onlinemergepartition
(
pid number,
salesdate date,
price number
)
PARTITION BY RANGE(salesdate)
(
PARTITION saleq116 VALUES LESS THAN (TO_DATE('01-APR-2016', 'DD-MON-YYYY')),
PARTITION saleq216 VALUES LESS THAN (TO_DATE('01-JUL-2016', 'DD-MON-YYYY')),
PARTITION saleq316 VALUES LESS THAN (TO_DATE('01-OCT-2016', 'DD-MON-YYYY')),
PARTITION saleq416 VALUES LESS THAN (TO_DATE('01-JAN-2017', 'DD-MON-YYYY')),
PARTITION saleq117 VALUES LESS THAN (TO_DATE('01-APR-2017', 'DD-MON-YYYY')),
PARTITION saleq217 VALUES LESS THAN (TO_DATE('01-JUL-2017', 'DD-MON-YYYY')),
PARTITION saleq317 VALUES LESS THAN (TO_DATE('01-OCT-2017', 'DD-MON-YYYY')),
PARTITION saleq417 VALUES LESS THAN (TO_DATE('01-JAN-2018', 'DD-MON-YYYY')),
PARTITION salefuture VALUES LESS THAN (TO_DATE('01-JAN-2020', 'DD-MON-YYYY'))
)
ENABLE ROW MOVEMENT
/
日期:2020-09-17 00:11:22 来源:oir作者:oir