一、实验目的

採用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. php 提交编辑数据没有变,返回0,判断

    php 提交编辑数据没有变,返回0,判断以TP为例子 $edit = D('Brand')->save($data);if($edit == true){ echo "修改成功&quo ...

  2. Kali linux 2016.2(Rolling)之 Nessus安装及Plugins Download Fail 解决方法

    最近,因科研需要,学习Nessus. Nessus是一款优秀的漏洞扫描软件,在其v6 HOME版本中在线更新漏洞插件不成功,采用离线更新,成功地更新了插件,在此将更新方法进行分享. 1.Nessus软 ...

  3. set statistics profile on实例

    set statistics profile on实例 1.SQL语句实例   SQL 代码   复制 SET STATISTICS PROFILE ON GO SELECT COUNT(b.[Sal ...

  4. ★Java语法(三)——————————变量常量

    变量 1.命名规则:变量是标识符,遵循标识符命名规则: 2.作用范围: a 成员变量:作用范围是整个类: package 课上练习; public class 变量 { ; public static ...

  5. servlet-后台获取form表单传的参数

    前台代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> & ...

  6. 推荐系统入门:作为Rank系统的推荐系统(协同过滤)

    知乎:如何学习推荐系统? 知乎:协同过滤和基于内容的推荐有什么区别? 案例:推荐系统实战?  数据准备:实现推荐栏位:重构接口:后续优化. 简书:实现实时推荐系统的三种方式?基于聚类和协同过滤:基于S ...

  7. nginx + php 403 原因分析

    环境:nginx + php 问题: 配置的网站,访问出现报错:Access Denied (403) 常见解决方法: 1.文件权限问题 可能是文件权限问题,没有读权限. 或者selinux没有关闭. ...

  8. idea搭建第一个springboot

    1.打开idea开发工具,在菜单栏选择File-->New-->Project...-->Spring Initializer说明:社区版的idea是没有Spring Initial ...

  9. Python这些问题你会吗?

    inal作用域的代码一定会被执行吗? 正常的情况下,finally作用域的代码一定会被执行的,不管是否发生异常.哪怕是调用了sys.exit函数,finally也是会被执行的,那怎么样才能让final ...

  10. BZOJ 1585: Earthquake Damage 2 地震伤害 网络流 + 最小割

    Description Farmer John的农场里有P个牧场,有C条无向道路连接着他们,第i条道路连接着两个牧场Ai和Bi,注意可能有很多条道路连接着相同的Ai和Bi,并且Ai有可能和Bi相等.F ...