一、实验目的

採用List-Range分区,对主分区指定表空间或者对子分区指定表空的不同情况,測试例如以下内容:

1、对List主分区不指定表空间。对Range子分区指定表空间,数据实际存储在哪个表空间;追加List主分区不指定Range子分区和指定Range子分区时,Oracle怎样创建相关子分区;

2、对List主分区指定表空间,对Range子分区不指定表空间。数据实际存储在哪个表空间;追加List主分区不指定Range子分区和指定Range子分区时,Oracle怎样创建相关子分区;

二、实验环境

操作系统:Window 7 旗舰版 x64

Cpu:Intel i5-2520M 2.50GHz X 2

内存:10G

Oracle版本号:Release 11.2.0.1.0

三、List指定表空间測试

3.1、创建表空间

CREATE TABLESPACE "TS_3512860010" DATAFILE 'D:\APP\ORADATA\ORCL\TS_3512860010.dbf' SIZE 50M AUTOEXTEND ON NEXT16K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENTAUTO;

CREATE TABLESPACE "TS_3512860005" DATAFILE 'D:\APP\ORADATA\ORCL\TS_3512860005.dbf' SIZE 50M AUTOEXTEND ON NEXT16K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENTAUTO;

CREATE TABLESPACE "TS_3512834993" DATAFILE 'D:\APP\ORADATA\ORCL\TS_3512834993.dbf' SIZE 50M AUTOEXTEND ON NEXT16K MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENTAUTO;

3.2、两个List两个Range測试

3.2.1、 创建分区

drop table LST_RNG_LIST cascade constraints;

/*==============================================================*/

/* Table: LST_RNG_LIST                                        */

/*==============================================================*/

create table LST_RNG_LIST

(

AUTO_ID            VARCHAR2(36)         not null,

SALE_NO            VARCHAR2(36)         not null,

POS_CODE           VARCHAR2(10),

POS_NAME           VARCHAR2(30),

TOTAL_AMOUNT        NUMBER(18,2),

SALE_DATE           DATE,

REMARK             VARCHAR2(500),

constraint PK_LST_RNG_LISTprimary key (AUTO_ID)

)

partition by list

(POS_CODE)

subpartition by range

(SALE_DATE)

subpartition template (

subpartition SP_20150726

values less than (TO_DATE('2015-07-26','YYYY-MM-DD')),

subpartition SP_20150802

values less than (TO_DATE('2015-08-02','YYYY-MM-DD'))

)

(

partition

P_3512860010

values ('3512860010')

tablespace TS_3512860010,

partition

P_3512860005

values ('3512860005')

tablespace TS_3512860005

);

comment on column LST_RNG_LIST.AUTO_ID is

'自己主动编号';

comment on column LST_RNG_LIST.SALE_NO is

'销售单号';

comment on column LST_RNG_LIST.POS_CODE is

'商户代码';

comment on column LST_RNG_LIST.POS_NAME is

'商户名称';

comment on column LST_RNG_LIST.TOTAL_AMOUNTis

'销售总额';

comment on column LST_RNG_LIST.SALE_DATE is

'销售日期';

comment on column LST_RNG_LIST.REMARK is

'备注';

3.2.2、查看分区

查看主分组

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_LIST';

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_LIST';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

Range子分区所属表空间自己主动归入List分区所属表空间



3.2.3、插入数据

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507240001','3512860010','全味食品商贸有限公司','100.78',TO_DATE('2015-07-24','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507250001','3512860010','全味食品商贸有限公司','100.78',TO_DATE('2015-07-25','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507260001','3512860010','全味食品商贸有限公司','1132.23',TO_DATE('2015-07-26','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507290001','3512860010','全味食品商贸有限公司','1132.23',TO_DATE('2015-07-29','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201508010001','3512860010','全味食品商贸有限公司','1132.23',TO_DATE('2015-08-01','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507240001','3512860005','新干线贸易有限公司','100.78',TO_DATE('2015-07-24','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507250001','3512860005','新干线贸易有限公司','100.78',TO_DATE('2015-07-25','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507260001','3512860005','新干线贸易有限公司','1132.23',TO_DATE('2015-07-26','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507290001','3512860005','新干线贸易有限公司','1132.23',TO_DATE('2015-07-29','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201508010001','3512860005','新干线贸易有限公司','1132.23',TO_DATE('2015-08-01','YYYY-MM-DD'),NULL);

commit;

3.2.4、查看数据

查看分区数据 

select * from LST_RNG_LIST partition(P_3512860010);

select * from LST_RNG_LIST partition(P_3512860005);

select * from LST_RNG_LIST subpartition(P_3512860010_SP_20150726);

select * from LST_RNG_LIST subpartition(P_3512834993_SP_20150802);

收集分区统计信息

begin

dbms_stats.gather_table_stats(ownname=>'WKOD_VERIFY',granularity =>'all',tabname=>'LST_RNG_LIST',cascade=>true);

end;

查看主分组

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_LIST';

num_rows=5,LST_PNG_LIST表分别在两个表空间中有5条数据

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_LIST';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

3.2.5、追加分区

方式一:追加主分区

alter table LST_RNG_LIST add partitionP_3512834993 values ('3512834993') tablespace TS_3512834993

查看分区

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_LIST';

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_LIST';

默认依照表创建时子分区的的分区规则,自己主动生成两个子分区(红色框内)

删除加入的List分区

alter table LST_RNG_LIST drop partitionP_3512834993;

相应的子分区会自己主动被drop掉。

方式二:追加主分区及其子分区

alter table LST_RNG_LIST add partition P_3512834993 values ('3512834993') tablespace TS_3512834993

(subpartition P_3512834993_SP_20150726 values less than (TO_DATE('2015-07-26','YYYY-MM-DD')))

查看分区

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_LIST';

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_LIST';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

依照设定的子分区创建range子分区

3.3、两个List一个Range測试

3.3.1、创建分区

drop table LST_RNG_LIST cascade constraints;

/*==============================================================*/

/* Table: LST_RNG_LIST                                        */

/*==============================================================*/

create table LST_RNG_LIST

(

AUTO_ID            VARCHAR2(36)         not null,

SALE_NO            VARCHAR2(36)         not null,

POS_CODE            VARCHAR2(10),

POS_NAME           VARCHAR2(30),

TOTAL_AMOUNT        NUMBER(18,2),

SALE_DATE           DATE,

REMARK             VARCHAR2(500),

constraint PK_LST_RNG_LISTprimary key (AUTO_ID)

)

partition by list

(POS_CODE)

subpartition by range

(SALE_DATE)

subpartition template (

subpartition SP_20150726

values less than (TO_DATE('2015-07-26','YYYY-MM-DD'))

)

(

partition

P_3512860010

values ('3512860010')

tablespace TS_3512860010,

partition

P_3512860005

values ('3512860005')

tablespace TS_3512860005

);

comment on column LST_RNG_LIST.AUTO_ID is

'自己主动编号';

comment on column LST_RNG_LIST.SALE_NO is

'销售单号';

comment on column LST_RNG_LIST.POS_CODE is

'商户代码';

comment on column LST_RNG_LIST.POS_NAME is

'商户名称';

comment on column LST_RNG_LIST.TOTAL_AMOUNTis

'销售总额';

comment on column LST_RNG_LIST.SALE_DATE is

'销售日期';

comment on column LST_RNG_LIST.REMARK is

'备注';

3.3.2、查看分区

查看主分组

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_LIST';

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_LIST';

Range子分区所属表空间自己主动归入List分区所属表空间

3.3.3、插入数据

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507240001','3512860010','全味食品商贸有限公司','100.78',TO_DATE('2015-07-24','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507250001','3512860010','全味食品商贸有限公司','100.78',TO_DATE('2015-07-25','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507240001','3512860005','新干线贸易有限公司','100.78',TO_DATE('2015-07-24','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_LIST(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507250001','3512860005','新干线贸易有限公司','100.78',TO_DATE('2015-07-25','YYYY-MM-DD'),NULL);

commit;

3.3.4、查看数据

查看分区数据 

select * from LST_RNG_LIST partition(P_3512860010);

select * from LST_RNG_LIST partition(P_3512860005);

select * from LST_RNG_LIST subpartition(P_3512860010_SP_20150726);

--select * from LST_RNG_LIST subpartition(P_3512834993_SP_20150802);

收集分区统计信息

begin

dbms_stats.gather_table_stats(ownname=>'WKOD_VERIFY',granularity =>'all',tabname=>'LST_RNG_LIST',cascade=>true);

end;

查看主分组

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_LIST';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

num_rows=2。LST_PNG_LIST表分别在两个表空间中有2条数据

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_LIST';

3.3.5、追加分区

方式一:追加主分区

alter table LST_RNG_LIST add partition P_3512834993 values ('3512834993')  tablespace TS_3512834993

查看分区

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_LIST';

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_LIST';

默认依照表创建时子分区的的分区规则,自己主动生成一个子分区(红色框内)

删除加入的List分区

alter table LST_RNG_LIST drop partitionP_3512834993;

相应的子分区会自己主动被drop掉。

方式二:追加主分区及其子分区

alter table LST_RNG_LIST add partition P_3512834993 values ('3512834993') tablespace TS_3512834993

(subpartition P_3512834993_SP_20150802values less than (TO_DATE('2015-08-02','YYYY-MM-DD')))

查看分区

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_LIST';

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_LIST';

依照设定的子分区创建range子分区

四、Range指定表空间測试

4.1、创建表空间

CREATE TABLESPACE "TS_20150726" DATAFILE 'D:\APP\ORADATA\ORCL\TS_20150726.dbf' SIZE 50M AUTOEXTEND ON NEXT 16KMAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENTAUTO;

CREATE TABLESPACE "TS_20150802" DATAFILE 'D:\APP\ORADATA\ORCL\TS_20150802.dbf' SIZE 50M AUTOEXTEND ON NEXT 16KMAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENTAUTO;

CREATE TABLESPACE "TS_20150809" DATAFILE 'D:\APP\ORADATA\ORCL\TS_20150809.dbf' SIZE 50M AUTOEXTEND ON NEXT 16KMAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENTAUTO;

4.2、两个List两个Range測试

4.2.1、创建分区表

drop table LST_RNG_RANGE cascade constraints;

/*==============================================================*/

/* Table:LST_RNG_RANGE                                        */

/*==============================================================*/

create table LST_RNG_RANGE

(

AUTO_ID             VARCHAR2(36)         not null,

SALE_NO             VARCHAR2(36)         not null,

POS_CODE            VARCHAR2(10),

POS_NAME            VARCHAR2(30),

TOTAL_AMOUNT         NUMBER(18,2),

SALE_DATE           DATE,

REMARK              VARCHAR2(500),

constraint PK_LST_RNG_RANGEprimary key (AUTO_ID)

)

partition by list

(POS_CODE)

subpartition by range

(SALE_DATE)

subpartition template (

subpartition SP_20150726

values less than (TO_DATE('2015-07-26','YYYY-MM-DD'))

tablespace TS_20150726,

subpartition SP_20150802

values less than (TO_DATE('2015-08-02','YYYY-MM-DD'))

tablespace TS_20150802

)

(

partition

P_3512860010

values ('3512860010'),

partition

P_3512860005

values ('3512860005')

);

comment on column LST_RNG_RANGE.AUTO_ID is

'自己主动编号';

comment on column LST_RNG_RANGE.SALE_NO is

'销售单号';

comment on column LST_RNG_RANGE.POS_CODE is

'商户代码';

comment on column LST_RNG_RANGE.POS_NAME is

'商户名称';

comment on column LST_RNG_RANGE.TOTAL_AMOUNT is

'销售总额';

comment on column LST_RNG_RANGE.SALE_DATE is

'销售日期';

comment on column LST_RNG_RANGE.REMARK is

'备注';

4.2.2、查看分区

查看主分组

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_RANGE';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

未指定表空间的主分区,默认使用当前用户所在的表空间。

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_RANGE';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

Range子分区存放于指定的表空间中

4.2.3、插入数据

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507240001','3512860010','全味食品商贸有限公司','100.78',TO_DATE('2015-07-24','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507250001','3512860010','全味食品商贸有限公司','100.78',TO_DATE('2015-07-25','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507260001','3512860010','全味食品商贸有限公司','1132.23',TO_DATE('2015-07-26','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507290001','3512860010','全味食品商贸有限公司','1132.23',TO_DATE('2015-07-29','YYYY-MM-DD'),NULL);

INSERT INTOLST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201508010001','3512860010','全味食品商贸有限公司','1132.23',TO_DATE('2015-08-01','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507240001','3512860005','新干线贸易有限公司','100.78',TO_DATE('2015-07-24','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507250001','3512860005','新干线贸易有限公司','100.78',TO_DATE('2015-07-25','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507260001','3512860005','新干线贸易有限公司','1132.23',TO_DATE('2015-07-26','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507290001','3512860005','新干线贸易有限公司','1132.23',TO_DATE('2015-07-29','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201508010001','3512860005','新干线贸易有限公司','1132.23',TO_DATE('2015-08-01','YYYY-MM-DD'),NULL);

commit;

4.2.4、查看数据

查看分区数据 

select * from LST_RNG_RANGE partition(P_3512860010);

select * from LST_RNG_RANGE partition(P_3512860005);

select * from LST_RNG_RANGE subpartition(P_3512860010_SP_20150726);

select * from LST_RNG_RANGE subpartition(P_3512860005_SP_20150726);

select * from LST_RNG_RANGE subpartition(P_3512860010_SP_20150802);

select * from LST_RNG_RANGE subpartition(P_3512860005_SP_20150802);

收集分区统计信息

begin

dbms_stats.gather_table_stats(ownname=>'WKOD_VERIFY',granularity =>'all',tabname=>'LST_RNG_RANGE',cascade=>true);

end;

查看主分组

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_RANGE';

num_rows=5,LST_PNG_RANGE表的两个主分区在当前用户所在的表空间中有各5条数据

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_RANGE';

4.2.5、追加分区

方式一:追加主分区

alter table LST_RNG_RANGE add partition P_3512834993 values ('3512834993')

查看分区

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_RANGE';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

主分区所属表空间为当前用户所在的表空间

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_RANGE';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

默认依照表创建时子分区的的分区规则,自己主动生成两个子分区(红色框内)。且分区相应表空间与原来一致

删除加入的List分区

alter table LST_RNG_RANGE drop partition P_3512834993;

相应的子分区会自己主动被drop掉。

方式二:追加主分区及其子分区

alter table LST_RNG_RANGE add partition P_3512834993 values ('3512834993')

(subpartition P_3512834993_SP_20150802 values less than (TO_DATE('2015-08-02','YYYY-MM-DD'))  tablespace TS_20150809)

查看分区

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_RANGE';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

主分区所属表空间为当前用户所在的表空间

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_RANGE';

依照设定的子分区所属的表空间创建range子分区

4.3、两个List一个Range測试

drop table LST_RNG_RANGE cascade constraints;

/*==============================================================*/

/* Table:LST_RNG_RANGE                                        */

/*==============================================================*/

create table LST_RNG_RANGE

(

AUTO_ID             VARCHAR2(36)         not null,

SALE_NO             VARCHAR2(36)         not null,

POS_CODE            VARCHAR2(10),

POS_NAME            VARCHAR2(30),

TOTAL_AMOUNT         NUMBER(18,2),

SALE_DATE           DATE,

REMARK              VARCHAR2(500),

constraint PK_LST_RNG_RANGEprimary key (AUTO_ID)

)

partition by list

(POS_CODE)

subpartition by range

(SALE_DATE)

subpartition template (

subpartition SP_20150726

values less than (TO_DATE('2015-07-26','YYYY-MM-DD'))

tablespace TS_20150726

)

(

partition

P_3512860010

values ('3512860010'),

partition

P_3512860005

values ('3512860005')

);

comment on column LST_RNG_RANGE.AUTO_ID is

'自己主动编号';

comment on column LST_RNG_RANGE.SALE_NO is

'销售单号';

comment on column LST_RNG_RANGE.POS_CODE is

'商户代码';

comment on column LST_RNG_RANGE.POS_NAME is

'商户名称';

comment on column LST_RNG_RANGE.TOTAL_AMOUNT is

'销售总额';

comment on column LST_RNG_RANGE.SALE_DATE is

'销售日期';

comment on column LST_RNG_RANGE.REMARK is

'备注';

4.3.2、查看分区

查看主分组

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_RANGE';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

未指定表空间的主分区,默认使用当前用户所在的表空间。

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_RANGE';

Range子分区存放于指定的表空间中

4.3.3、插入数据

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507240001','3512860005','新干线贸易有限公司','100.78',TO_DATE('2015-07-24','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507250001','3512860005','新干线贸易有限公司','100.78',TO_DATE('2015-07-25','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507240001','3512860010','全味食品商贸有限公司','100.78',TO_DATE('2015-07-24','YYYY-MM-DD'),NULL);

INSERT INTO LST_RNG_RANGE(AUTO_ID,SALE_NO,POS_CODE,POS_NAME,TOTAL_AMOUNT,SALE_DATE,REMARK)

VALUES(SYS_GUID(),'SN201507250001','3512860010','全味食品商贸有限公司','100.78',TO_DATE('2015-07-25','YYYY-MM-DD'),NULL);

commit;

4.3.4、查看数据

查看分区数据 

select * from LST_RNG_RANGE partition(P_3512860010);

select * from LST_RNG_RANGE partition(P_3512860005);

select * from LST_RNG_RANGE subpartition(P_3512860010_SP_20150726);

select * from LST_RNG_RANGE subpartition(P_3512860005_SP_20150726);

收集分区统计信息

begin

dbms_stats.gather_table_stats(ownname=>'WKOD_VERIFY',granularity =>'all',tabname=>'LST_RNG_RANGE',cascade=>true);

end;

查看主分组

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_RANGE';

num_rows=2,LST_PNG_RANGE表的两个主分区在当前用户所在的表空间中各有2条数据

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_RANGE';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

两个分区在同一个表空间中,每一个分区中都存在两条数据

4.3.5、追加分区

方式一:追加主分区

alter table LST_RNG_RANGE add partition P_3512834993 values ('3512834993')

查看分区

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_RANGE';

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

主分区所属表空间为当前用户所在的表空间

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_RANGE';

默认依照表创建时子分区的的分区规则,自己主动生成一个子分区(红色框内),且分区相应表空间与原来一致

删除加入的List分区

alter table LST_RNG_RANGE drop partition P_3512834993;

相应的子分区会自己主动被drop掉。

方式二:追加主分区及其子分区

alter table LST_RNG_RANGE add partition P_3512834993 values ('3512834993')

(subpartition P_3512834993_SP_20150802 values less than (TO_DATE('2015-08-02','YYYY-MM-DD'))  tablespace TS_20150809)

查看分区

select partition_position,table_name,partition_name,high_value,tablespace_name,num_rows

from user_tab_partitions

where table_name='LST_RNG_RANGE';

主分区所属表空间为当前用户所在的表空间

查看子分区

select subpartition_position,table_name,partition_name,subpartition_name,high_value,tablespace_name,num_rows

from user_tab_subpartitions

where table_name='LST_RNG_RANGE';

依照设定的子分区所属的表空间创建range子分区

五、实验结论

一、List-Range组合分区下。在List指定表空间,Range不指定表空间。Oracle自己主动将Range子分区存放于相应的List表空间中。

二、追加分区时候。在不指定子分区的情况下,Oracle默认依照表创建时的分区方式,对新追加的List分区下的子分区进行分区;

三、List-Range组合分区,全部表的数据实际存放在子分区所在的表空间。



附:

1、DROP TABLE

drop table LST_RNG_RANGE;

--并不是真删,而是置DROP标志,相关分区也依旧存在

select * from user_recyclebin;

实际清空

purge table LST_RNG_RANGE;

2、查看数据记录所在表空间

SELECT B.TABLESPACE_NAME

FROM DBA_DATA_FILES B

WHERE B.FILE_ID = (SELECTDBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) FILE_ID

FROM LST_RNG_RANGE A

WHERE A.SALE_NO='SN201507260001');

3、经常使用分区表相关语句

--显示数据库全部分区表的信息:

select * from DBA_PART_TABLES;





--显示当前用户可訪问的全部分区表信息:

select * from ALL_PART_TABLES;





--显示当前用户全部分区表的信息:

select * from USER_PART_TABLES;





--显示表分区信息 显示数据库全部分区表的具体分区信息:

select * from DBA_TAB_PARTITIONS;





--显示当前用户可訪问的全部分区表的具体分区信息:

select * from ALL_TAB_PARTITIONS;





--显示当前用户全部分区表的具体分区信息:

select * from USER_TAB_PARTITIONS;





--显示子分区信息 显示数据库全部组合分区表的子分区信息:

select * from DBA_TAB_SUBPARTITIONS;





--显示当前用户可訪问的全部组合分区表的子分区信息:

select * from ALL_TAB_SUBPARTITIONS;





--显示当前用户全部组合分区表的子分区信息:

select * from USER_TAB_SUBPARTITIONS;





--显示分区列 显示数据库全部分区表的分区列信息:

select * from DBA_PART_KEY_COLUMNS;





--显示当前用户可訪问的全部分区表的分区列信息:

select * from ALL_PART_KEY_COLUMNS;





--显示当前用户全部分区表的分区列信息:

select * from USER_PART_KEY_COLUMNS;





--显示子分区列 显示数据库全部分区表的子分区列信息:

select * from DBA_SUBPART_KEY_COLUMNS;





--显示当前用户可訪问的全部分区表的子分区列信息:

select * from ALL_SUBPART_KEY_COLUMNS;





--显示当前用户全部分区表的子分区列信息:

select * from USER_SUBPART_KEY_COLUMNS;





--如何查询出oracle数据库中全部的的分区表

select * from user_tables a where a.partitioned='YES';





--删除一个表的数据是

truncate table table_name;





--删除分区表一个分区的数据是

alter table table_name truncate partition p5;



Oracle 11gR2 List-Range分区实验的更多相关文章

  1. oracle interval-partition 解决range分区大难题

    博客<oracle分区>中讲了oracle的几种分区,并且对于oracle的典型分区如Range分区和List分区给了示例. 在实际运用Range分区时,遇到了这样的难题: createt ...

  2. Oracle 分区表-Range分区

    原文:http://www.tuicool.com/articles/MzeM7r 一.什么是分区表 Oracle提供了分区技术以支持VLDB(Very Large DataBase).分区表通过对分 ...

  3. OEL5.5安装Oracle 11gr2详解

    虚拟机环境:Vmware Workstation 11.1.0 + Oracle Enterprise Linux 5.5 X86-641.物理机内存设置 最小:1GB 推荐:2GB或以上 检测内存大 ...

  4. Oracle 11gR2 RAC 安装配置

    1. 简介   Oracle RAC,全称real application clusters,译为"实时应用集群", 是Oracle新版数据库中采用的一项新技术,是高可用性的一种, ...

  5. ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇)

    ORACLE 11gR2 RAC添加删除(正常及强制)节点操作步骤(删除篇) 本文主要转载 [  http://www.cnxdug.org/?p=2511 ] 有部分细节自己实验添加,再此谢谢前辈. ...

  6. CentOS 7安装Oracle 11gR2以及设置自启动(1)

    一.环境准备 1.正确无误的CentOS 7系统环境 虚拟机要求: 内存至少2G 处理器至少2个 根分区要大于20G(安装oracle很占空间,空闲空间要足够) 2.正确的JDK环境 CentOS 7 ...

  7. CentOS 7 之安装 Oracle 11gR2

    一.准备工作 1.下载Oracle安装包:linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip ,可以下载到本地, ...

  8. Oracle 11gR2 RAC 新特性说明

    最近接触了一下Oracle 11g R2 的RAC,发现变化很大. 所以在自己动手做实验之前还是先研究下它的新特性比较好. 一.    官网介绍 先看一下Oracle 的官网文档里对RAC 新特性的一 ...

  9. 一步一步搭建oracle 11gR2 rac+dg之共享磁盘设置(三)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之共享磁盘准备 (三) 注意:这一步是配置rac的过程中非常重要的一步,很多童鞋 ...

  10. 一步一步搭建 oracle 11gR2 rac+dg之grid安装(四)【转】

    一步一步在RHEL6.5+VMware Workstation 10上搭建 oracle 11gR2 rac + dg 之grid安装 (四) 转自 一步一步搭建 oracle 11gR2 rac+d ...

随机推荐

  1. caffe介绍

  2. C#方法的练习

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Demo ...

  3. 附加MySQL数据库的方法

    下面讲解附加MySQL数据库的方法. (1)将“光盘\Code\04\Project\数据库”文件夹中的扩展名为.sql的文件拷贝到本地机器中. (2)在如图1所示的MySQL工作台界面中,单击Dat ...

  4. 如何写出高性能SQL语句(文章摘自web开发者)

    (声明:本文内容摘自web开发者,仅供收藏学习之用,如有侵权请作者联系博主,博主将在第一时间删除) 原文地址:http://www.admin10000.com/document/484.html 1 ...

  5. Deutsch lernen (04)

    1. streng a. 严厉的,严格的 streng gegen sich selbst und gegen andere sein streng auf Ordnung halten 2. ver ...

  6. 虚拟机+linux+大杂烩

    出于项目需要,需要用到linux系统.这玩意儿平时很少用,要说体验度还是windows更人性化一些. 1.虚拟机的安装,这个没说的,百度VMware直接下最新版安装就好. 2.接着是linux系统的安 ...

  7. css3基础篇二

    CSS3 边框 border-radius box-shadow border-image(ie不支持) 语法 border-radius: 1-4 length|% / 1-4 length|%; ...

  8. 来源页面地址 上一页面url

    Uri uri = Request.UrlReferrer;

  9. DD打卡

    一.安装逍遥安卓模拟器 二.安装钉钉 三.设置当前GPS座标 位置模拟器: 链接: https://pan.baidu.com/s/1TC5QkrGAgHOJWtzJnX6vhA 提取码: bpu8 ...

  10. python写入Excel

    一.dataframe存入Excel中: 注意:openpyxl打开的文件需是xlsx的后缀,因为比较新的. from openpyxl import load_workbook import pan ...