• 分区操作


     

     

    #######################################################

    建分区

    CREATE TABLESPACE  rptfact201001 LOGGING DATAFILE 'E:\oracle\tblspace\rptfact201001.ora' SIZE 1M ;

    CREATE TABLESPACE  rptfact201001a LOGGING DATAFILE 'E:\oracle\tblspace\rptfact201001a.ora' SIZE 1M ;

    CREATE TABLESPACE  rptfact201001i LOGGING DATAFILE 'E:\oracle\tblspace\rptfact201001i.ora' SIZE 1M ;

    CREATE TABLESPACE  rptfact201002 LOGGING DATAFILE 'E:\oracle\tblspace\rptfact201002.ora' SIZE 1M ;

    CREATE TABLESPACE  rptfact201002a LOGGING DATAFILE 'E:\oracle\tblspace\rptfact201002a.ora' SIZE 1M ;

    CREATE TABLESPACE  rptfact201002i LOGGING DATAFILE 'E:\oracle\tblspace\rptfact201002i.ora' SIZE 1M ;

     

     

    CREATE TABLE SALES

    (

        PRODUCT_ID CHAR(5) PRIMARY KEY ,

        SALES_DATE DATE,

        SALES_COST NUMBER(10),

        STATUS VARCHAR2(20)

    )   //下面先按范围分区,再按列表分区

    PARTITION BY RANGE(SALES_DATE) SUBPARTITION BY LIST (STATUS)

    (

       PARTITION P1 VALUES LESS THAN(TO_DATE('2010-04-01','YYYY-MM-DD'))

       (

          SUBPARTITION P1SUB1 VALUES ('ACTIVE') TABLESPACE rptfact201001a,

          SUBPARTITION P1SUB2 VALUES ('INACTIVE') TABLESPACE rptfact201001i

       ),

       PARTITION P2 VALUES LESS THAN (TO_DATE('2010-07-01','YYYY-MM-DD'))

       (

          SUBPARTITION P2SUB1 VALUES ('ACTIVE') TABLESPACE rptfact201002a,

          SUBPARTITION P2SUB2 VALUES ('INACTIVE') TABLESPACE rptfact201002i

       )

    );

     

    insert into sales(PRODUCT_ID,SALES_DATE,SALES_COST,STATUS) values('001',TO_DATE('2010-03-01','YYYY-MM-DD'),101,'ACTIVE');

    insert into sales(PRODUCT_ID,SALES_DATE,SALES_COST,STATUS) values('002',TO_DATE('2010-03-01','YYYY-MM-DD'),102,'INACTIVE');

    insert into sales(PRODUCT_ID,SALES_DATE,SALES_COST,STATUS) values('003',TO_DATE('2010-03-01','YYYY-MM-DD'),103,'a');

     

    insert into sales(PRODUCT_ID,SALES_DATE,SALES_COST,STATUS) values('101',TO_DATE('2010-05-01','YYYY-MM-DD'),201,'ACTIVE');

    insert into sales(PRODUCT_ID,SALES_DATE,SALES_COST,STATUS) values('102',TO_DATE('2010-05-01','YYYY-MM-DD'),202,'INACTIVE');

    insert into sales(PRODUCT_ID,SALES_DATE,SALES_COST,STATUS) values('103',TO_DATE('2010-05-01','YYYY-MM-DD'),203,'a');

     

    #######################################################

     

    CREATE TABLESPACE  ts_space01 LOGGING DATAFILE 'E:\oracle\tblspace\ts_space01.ora' SIZE 1M ;

    CREATE TABLESPACE  ts_space02 LOGGING DATAFILE 'E:\oracle\tblspace\ts_space02.ora' SIZE 1M ;

    CREATE TABLESPACE  ts_space03 LOGGING DATAFILE 'E:\oracle\tblspace\ts_space03.ora' SIZE 1M ;

     

    //先按范围,后按散列分区

    create table ts_test

    (

      ts_id number primary key,

      item_id number(8) not null,

      item_desc varchar2(300),

      ts_date date

    )

    partition by range(ts_date)

    subpartition by hash(ts_id)

    subpartitions 3 store in (ts_space01,ts_space02,ts_space03)

    (

        partition part_01 values less than(to_date('2010-01-01','yyyy-mm-dd')),

        partition part_02 values less than(to_date('2011-01-01','yyyy-mm-dd')),

        partition part_03 values less than(maxvalue)

    );

     

    insert into ts_test(ts_id,item_id,item_desc,ts_date) values(1,10,'A00',to_date('2009-01-01','yyyy-mm-dd') );

    insert into ts_test(ts_id,item_id,item_desc,ts_date) values(2,20,'B00',to_date('2010-01-01','yyyy-mm-dd') );

    insert into ts_test(ts_id,item_id,item_desc,ts_date) values(3,30,'C00',to_date('2011-01-01','yyyy-mm-dd') );

     

    查看表空间的名字和所属物理文件地址

    select tablespace_name, file_id, file_name,

    round(bytes/(1024*1024),0) total_space

    from dba_data_files

    order by tablespace_name;

     

     

    //分析表,这样索引才能生效

    analyze table ts_test compute statistics;

     

    截断分区

    ALTER TABLE SALES TRUNCATE PARTITION P1;

    ALTER TABLE SALES TRUNCATE SUBPARTITION P1SUB1;

    ALTER TABLE ts_test TRUNCATE PARTITION part_01;

    删除分区

    alter table sales drop SUBPARTITION P2SUB3;  //删除子分区

     

    //查看分区信息

    select PARTITION_NAME from USER_TAB_PARTITIONS;

    select PARTITION_NAME, SUBPARTITION_NAME from USER_TAB_SUBPARTITIONS ;

     

     

    //给一个父分区上增加一个子分区(列表分区)

    ALTER TABLE SALES MODIFY PARTITION P1 ADD SUBPARTITION P1SUB3 VALUES ('a') TABLESPACE rptfact201001a;

    ALTER TABLE SALES MODIFY PARTITION P2 ADD SUBPARTITION P2SUB3 VALUES ('a') TABLESPACE rptfact201002a;

  • 相关阅读:
    laravel进阶知识大纲
    spring boot 配置多个DispatcherServlet
    RepeatReadRequestWrapper
    RestTemplate HttpClient详解及如何设置忽略SSL
    Swagger注解-@ApiModel 和 @ApiModelProperty
    SpringBoot 接收 单个String入参之解决方案
    spring boot添加 LocalDateTime 等 java8 时间类序列化和反序列化的支持
    Mybatisplus实现MetaObjectHandler接口自动更新创建时间更新时间
    关于SpringBoot 2.0,Pageable 无法注入,提示缺少默认构造方法的解决办法
    OP_REQUIRES failed at save_restore_v2_ops.cc:109 : Permission denied: model/variables/variables_t emp; Permission denied
  • 原文地址:https://www.cnblogs.com/windphoenix/p/1829537.html
Copyright © 2020-2023  润新知