当前位置: 首页 > news >正文

Oracle 11gR2 List-Range分区实验

一、实验目的

     採用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';


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';



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';


依照设定的子分区创建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';


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';


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

 

查看子分区

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.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';


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

 

查看子分区

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子分区


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';


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

 

查看子分区

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';


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


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';


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

 

查看子分区

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;


相关文章:

  • python操作excel
  • 一行命令搞定node.js升级
  • 仿射梯度
  • Snapchat发布不到2个月的故事搜索功能,又双叒被Instagram抄袭了
  • 中芯国际第三财季净利润1.136亿美元
  • Jmeter常用函数之__CSVRead使用
  • 苹果计划在英国建立新总部 位于巴特西发电站旧址
  • 保监会:大数据改变保险运作模式
  • 分布式光伏渐入理想状态?
  • 提高人民媒介素养,加强网络安全建设
  • 大力发展互联网经济积极推进智慧城市建设
  • Teradata扩展数据湖搭建能力
  • 大数据:新动力 新机遇 新途径
  • D1net阅闻:比上周更可怕的勒索病毒入侵电脑
  • 扎克伯格用胶带遮住笔记本摄像头 FBI局长也是这么做的
  • 10个最佳ES6特性 ES7与ES8的特性
  • 2019年如何成为全栈工程师?
  • CODING 缺陷管理功能正式开始公测
  • ECS应用管理最佳实践
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • JS笔记四:作用域、变量(函数)提升
  • k8s 面向应用开发者的基础命令
  • MySQL QA
  • PHP的类修饰符与访问修饰符
  • Protobuf3语言指南
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 案例分享〡三拾众筹持续交付开发流程支撑创新业务
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 第十八天-企业应用架构模式-基本模式
  • 给初学者:JavaScript 中数组操作注意点
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 看域名解析域名安全对SEO的影响
  • 排序(1):冒泡排序
  • 前端面试总结(at, md)
  • 如何进阶一名有竞争力的程序员?
  • 王永庆:技术创新改变教育未来
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • NLPIR智能语义技术让大数据挖掘更简单
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​ubuntu下安装kvm虚拟机
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (09)Hive——CTE 公共表达式
  • (175)FPGA门控时钟技术
  • (70min)字节暑假实习二面(已挂)
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (安卓)跳转应用市场APP详情页的方式
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (十)c52学习之旅-定时器实验
  • (一) storm的集群安装与配置
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...