ORACLE表分区

作者: wqh8384 | 来源:发表于2019-01-27 19:26 被阅读11次

    一.表分区策略

    1.识别大表

      采用ANALYZE TABLE语句进行分析,然后查询数据字典获得相应的数据量。

    2.大表如何分区

    可根据月份,季度以及年份等进行分区;

    3.分区的表空间规划

    要对每个表空间的大小进行估计

    二.创建表分区

    a.创建范围分区的关键字是'RANGE'

    1.范围分区

    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 TEMP01,

      --2011年第二个季度为part_02分区

      partition par_02 values less than(to_date('2011-07-01','yyyy-mm-dd')) tablespace TEMP01,

      --2011年第三个季度为part_03分区

      partition par_03 values less than(to_date('2011-10-01','yyyy-mm-dd')) tablespace TEMP01,

      --2011年第四个季度为part_04分区

      partition par_04 values less than(to_date('2012-01-01','yyyy-mm-dd')) tablespace TEMP01

    );

    2.创建散列分区

    ORACLE表分区

    3.组合分区:

    ORACLE表分区

    4.interval 分区

    ORACLE表分区

    三.创建索引分区

    索引分区分为本地索引分区和全局索引分区,全局索引不反应基础表的结构,要分区只能进行范围分区。

    创建索引分区要参照表分区

    ORACLE表分区

    四.分区技术简介

    优点:

    1.减少维护工作量

    2.增强数据的可用性

    3.均衡I/O,提升性能

    4.提高查询速度

    5.分区对用户保持透明,用户感觉不到分区的存在。

    五,管理表分区

    1.添加表分区

    ORACLE表分区

    ALTER TABLE...ALTER PARATITION

    2.合并表分区

    3.删除分区

    ALTER TABLE...DROP PARTITION

    删除分区时,里面的数据也会被删除。

    -创建表和分区

    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;

    六.管理索引分区

    删除索引:DROP PARTITION

    重建分区:REBUILT PARTITION

    更名索引分区:RENAME PARTITION

    分割索引分区:SPLIT PARTITION

    ORACLE表分区

    相关文章

      网友评论

        本文标题:ORACLE表分区

        本文链接:https://www.haomeiwen.com/subject/hgjnjqtx.html