今天客户问到一个问题:split分区的时候,在max分区的数据,会跟着进新划分出的分区吗?
以前做分区实验的时候,没有留意数据。突然被这么一问,有点摸不着头脑了,光靠猜测是不行的。自己做的了个简单的测试。实验步骤如下:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL> create table emp_par (sal number(7,2))
2 partition by range(sal)
3 (partition emp_p1 values less than (2000),
4 partition emp_p2 values less than (4000),
5 partition emp_po values less than (MAXVALUE));
表已创建。
SQL> insert into emp_par values(3000);
已创建 1 行。
SQL> insert into emp_par values(6000);
已创建 1 行。
SQL> insert into emp_par values(1000);
已创建 1 行。
SQL> insert into emp_par values(8000);
已创建 1 行。
SQL> insert into emp_par values(10000);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from emp_par partition(emp_po);
SAL
----------
6000
8000
10000
SQL> alter table emp_par split partition EMP_PO at(9000) into (partition EMP_P3, partition EMP_PO);
表已更改。
SQL> select * from emp_par partition(emp_po);
SAL
----------
10000
SQL> insert into emp_par values(12000);
已创建 1 行。
SQL> insert into emp_par values(14000);
已创建 1 行。
SQL> insert into emp_par values(16000);
已创建 1 行。
SQL> insert into emp_par values(18000);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter table emp_par split partition EMP_PO at(14000) into (partition EMP_P4 tablespace users, partition EMP_PO);
表已更改。
SQL> select * from emp_par partition(emp_po);
SAL
----------
14000
16000
18000
SQL> select * from emp_par partition(emp_p4);
SAL
----------
10000
12000
以前做分区实验的时候,没有留意数据。突然被这么一问,有点摸不着头脑了,光靠猜测是不行的。自己做的了个简单的测试。实验步骤如下:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL> create table emp_par (sal number(7,2))
2 partition by range(sal)
3 (partition emp_p1 values less than (2000),
4 partition emp_p2 values less than (4000),
5 partition emp_po values less than (MAXVALUE));
表已创建。
SQL> insert into emp_par values(3000);
已创建 1 行。
SQL> insert into emp_par values(6000);
已创建 1 行。
SQL> insert into emp_par values(1000);
已创建 1 行。
SQL> insert into emp_par values(8000);
已创建 1 行。
SQL> insert into emp_par values(10000);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from emp_par partition(emp_po);
SAL
----------
6000
8000
10000
SQL> alter table emp_par split partition EMP_PO at(9000) into (partition EMP_P3, partition EMP_PO);
表已更改。
SQL> select * from emp_par partition(emp_po);
SAL
----------
10000
SQL> insert into emp_par values(12000);
已创建 1 行。
SQL> insert into emp_par values(14000);
已创建 1 行。
SQL> insert into emp_par values(16000);
已创建 1 行。
SQL> insert into emp_par values(18000);
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter table emp_par split partition EMP_PO at(14000) into (partition EMP_P4 tablespace users, partition EMP_PO);
表已更改。
SQL> select * from emp_par partition(emp_po);
SAL
----------
14000
16000
18000
SQL> select * from emp_par partition(emp_p4);
SAL
----------
10000
12000
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26121829/viewspace-713245/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26121829/viewspace-713245/