zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然ORACLE数据库学习笔记:表分区与索引分区

    create table ware_retail_part --创建一个描述商品零售的数据表
    (
      id integer primary key,--销售编号
      retail_date date,--销售日期
      ware_name varchar2(50)--商品名称
    )
    partition by range(retail_date)
    (
      --2011年第一个季度为part_01分区
      partition par_01 values less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace TBSP_1,
      --2011年第二个季度为part_02分区
      partition par_02 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace TBSP_1,
      --2011年第三个季度为part_03分区
      partition par_03 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace TBSP_2,
      --2011年第四个季度为part_04分区
      partition par_04 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace TBSP_2 
    );
    create table ware_retail_part2 --创建一个描述商品零售的数据表
    (
      id integer primary key,--销售编号
      retail_date date,--销售日期
      ware_name varchar2(50)--商品名称
    )
    partition by range(id,retail_date)--按照销售序号和销售日期分区
    (
      --第一个分区part_01
      partition par_01 values less than(10000,to_date('2011-12-01','yyyy-mm-dd')) tablespace TBSP_1,
      --第一个分区part_02
      partition par_02 values less than(20000,to_date('2012-12-01','yyyy-mm-dd')) tablespace TBSP_1,
      --第一个分区part_03
      partition par_03 values less than(maxvalue,maxvalue) tablespace TBSP_2 
    );
    create table ware_retail_part3 --创建一个描述商品零售的数据表
    (
      id integer primary key,--销售编号
      retail_date date,--销售日期
      ware_name varchar2(50)--商品名称
    )
    partition by hash(id)
    (
      partition par_01 tablespace TBSP_1,
      partition par_02 tablespace TBSP_2
    );
    create table person
    (
      id number primary key,
      name varchar2(20),
      sex varchar2(2)
    )
    partition by hash(id)
    partitions 2
    store in(tbsp_1,tbsp_2);
    create table goods
    (
      id number,
      goodname varchar2(50)
    )
    storage(initial 2048k)
    partition by hash(id)
    (
     partition par1 tablespace tbsp_1,
     partition par2 tablespace tbsp_2
    );
    create table clients
    (
      id integer primary key,
      name varchar2(50),
      province varchar2(20)
    )
    partition by list(province)
    (
      partition shandong values('山东省'),
      partition guangdong values('广东省'),
      partition yunnan values('云南省')
    );
     create table person2                     --创建以一个描述个人信息的表
    (
      id number primary key,                --个人的编号
      name varchar2(20),                    --姓名
      sex varchar2(2)                    --性别
    )
    partition by range(id)--以id作为分区键创建范围分区
    subpartition by hash(name)--以name列作为分区键创建hash子分区
    subpartitions 2 store in(tbsp_1,tbsp_2)--hash子分区公有两个,分别存储在两个不同的命名空间中
    (
      partition par1 values less than(5000),--范围分区,id小于5000
      partition par2 values less than(10000),--范围分区,id小于10000
      partition par3 values less than(maxvalue)--范围分区,id不小于10000
    );
    create table saleRecord
    (
     id number primary key, --编号
     goodsname varchar2(50),--商品名称
     saledate date,--销售日期
     quantity number--销售量
    )
    partition by range(saledate)
    interval (numtoyminterval(1,'year'))
    (
      --设置分区键值日期小于2012-01-01
      partition par_fist values less than (to_date('2012-01-01','yyyy-mm-dd'))
    );
    alter table clients
    add partition hebei values('河北省')
    storage(initial 10K next 20k) tablespace tbsp_1
    nologging;
    --创建表和分区
    create table sales--创建一个销售记录表
    (
      id number primary key,--记录编号
      goodsname varchar2(10),--商品名
      saledate date--销售日期
    )
    partition by range(saledate)--按照日期分区
    (
      --第一季度数据
      partition part_sea1 values less than(to_date('2011-04-01','yyyy-mm-dd')) tablespace tbsp_1,
      --第二季度数据
      partition part_sea2 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace tbsp_2,
      --第三季度数据
      partition part_sea3 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace tbsp_1,
      --第四季度数据
      partition part_sea4 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace tbsp_2
    );
    
    --创建局部索引
    create index index_3_4 on sales(saledate)
    local(
    partition part_seal tablespace tbsp_1,
    partition part_sea2 tablespace tbsp_2,
    partition part_sea3 tablespace tbsp_1,
    partition part_sea4 tablespace tbsp_2
    );
    
    --并入分区
    alter table sales merge partitions part_sea3,part_sea4 into partition part_sea4;
    
    --重建局部索引
    alter table sales modify partition part_sea4 rebuild unusable local indexes;
    --创建3个表空间
    
    create tablespace ts_1 datafile 'D:OracleFilesOracleData	s1.dbf'
    size 10m
    extent management local autoallocate;
    create tablespace ts_2 datafile 'D:OracleFilesOracleData	s2.dbf'
    size 10m
    extent management local autoallocate;
    create tablespace ts_3 datafile 'D:OracleFilesOracleData	s3.dbf'
    size 10m
    extent management local autoallocate;
    
    
    --创建分区表
    create table studentgrade
    (
      id number primary key,--记录id
      name varchar2(10),--学生名称
      subject varchar2(10),--学科
      grade number --成绩
    )
    partition by range(grade)
    (
      --小于60分,不及格
      partition par_nopass values less than(60) tablespace ts_1,
      --小于70分,及格
      partition par_pass values less than(70) tablespace ts_2,
      --大于或等于70分,优秀
      partition par_good values less than(maxvalue) tablespace ts_3
    );
    
    
    --创建本地索引分区
    create index grade_index on studentgrade(grade)
    local--根据表分区创建本地索引分区
    (
      partition p1 tablespace ts_1,
      partition p2 tablespace ts_2,
      partition p3 tablespace ts_3
    );
    
    --查询所创建的索引分区信息
    select partition_name,tablespace_name from dba_ind_partitions where index_name = 'GRADE_INDEX';
    create index index_SalePrice on Books(SalePrice)
    global partition by range(SalePrice)
    (
      partition p1 values less than (30),
      partition p2 values less than (50),
      partition p3 values less than (maxvalue)
    );
    create index index_ISBN on books(ISBN)
    global partition by hash(ISBN);
    alter index index_saleprice rename partition p3 to p_new;
     create table Books_Sale                        --图书销售表
    (
      id integer primary key,                --编号
      quantity number,                    --销售数量
      book_name varchar2(50),                --名称
      publisher varchar2(50)                                --出版社
    )
    partition by list(publisher)                    --以publisher 列为分区键创建列表分区
    (
      partition A values('A省出版社'),            --A省份
      partition B values('B省出版社'),         --B省份
      partition C values('C省出版社')             --C省份
    );
    create index grade_index on Books_Sale(publisher)
    local        --根据表分区创建本地索引分区
    (
      partition p1 tablespace users,
      partition p2 tablespace users,
      partition p3 tablespace users
    );
  • 相关阅读:
    UVALive 5983 MAGRID DP
    2015暑假训练(UVALive 5983
    poj 1426 Find The Multiple (BFS)
    poj 3126 Prime Path (BFS)
    poj 2251 Dungeon Master 3维bfs(水水)
    poj 3278 catch that cow BFS(基础水)
    poj3083 Children of the Candy Corn BFS&&DFS
    BZOJ1878: [SDOI2009]HH的项链 (离线查询+树状数组)
    洛谷P3178 [HAOI2015]树上操作(dfs序+线段树)
    洛谷P3065 [USACO12DEC]第一!First!(Trie树+拓扑排序)
  • 原文地址:https://www.cnblogs.com/tszr/p/12206790.html
Copyright © 2011-2022 走看看