zoukankan      html  css  js  c++  java
  • 分区操作

     

     

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

    建分区

    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;

  • 相关阅读:
    使用 connect http proxy 绕过 ssh 防火墙限制
    Docker 容器与宿主机网段冲突导致网络无法 ping 通的解决方案
    Mac 下 Chrome 浏览器 ERR_NETWORK_CHANGED 报错解决方案
    SCSS & SASS Color 颜色函数用法
    eggjs 框架代理调试 SELF_SIGNED_CERT_IN_CHAIN 报错解决方案
    【转】谷歌安装Axure浏览器插件
    js 图片转base64并压缩
    ajax请求
    postman如何重置账号的密码
    解决url中&times会被转成×的问题
  • 原文地址:https://www.cnblogs.com/windphoenix/p/1829537.html
Copyright © 2011-2022 走看看