Oracle数据库分区--实例

    分区表通过对分区列进行判断,把满足不同条件的分区列对应的记录保存在不同的分区中。

一、何为分区表

BaiduShurufa_2018-6-16_9-39-10.jpg

什么情况下会使用分区表?

  • 表中已有大量数据,或预计到表中将会保存大量的数据

  • 可以按照预期(月份、区域、dml)对表中的数据执行查询和更新


什么是分区键?

创建分区表,需要分区键;分区表的每一列都明确的归属一个分区,划分的依据就是区键

有如下特点

  • 由1~~16个列顺序组成

  • 不能包含Level、RowId、MisLabel伪列

  • 不能包含为空的列


Oracle支持哪些类型的分区方式?

  1. 范围分区——将分区表中的记录映射到基于分区键列值范围的分区,例如:按照月份划分

  2. 散列分区——基于分区键的散列值进行映射到分区中,也就是字段的hash值进行均匀分布,尽可能的实现各分区所散列的数据相等。

  3. 列表分区——根据分区键的值明确定义其归属的分区,例如:华北、东北等区块

  4. 组合范围-散列分区——范围和散列的组合,例如:按月份对业绩进行分区,并用散列分区

  5. 组合范围-列表分区——范围和列表的组合,例如:按月份对业绩进行分区,并用地域分区

范围分区.jpg

列表分区.jpg

散列分区.jpg


组合范围-散列分区.jpg

组合范围-散列分区.jpg

什么情况下使用分区表,在多大的数据量时?

  • 记录数在1000w以上

  • 表中数据有百万,但每条记录的数量比较大


二、应用场景 

需求:信用卡消费流程

信用卡刷卡.jpg

--创建用户Credit
create user credit identified by pwd default tablespace users temporary tablespace temp;
--向Credit授权
grant create session to credit;
grant create table to credit;
grant create sequence to credit;
grant create user,alter user,drop user to credit;
--向用户credit授予表空间users的配额
alter user credit quota 100M on users;

consume.jpg


  1. 确定分区方案

首先需要确定分区的依据和分区的数量,针对信用卡可以按照consume_date进行分区

消费记录分区.jpg

create tablespace creditTab1
datafile 'E:\app\Administrator\admin\orcl\creditDataFile01.dbf' size 50M;
create tablespace creditTab2
datafile 'E:\app\Administrator\admin\orcl\creditDataFile02.dbf' size 50M;
create tablespace creditTab3
datafile 'E:\app\Administrator\admin\orcl\creditDataFile03.dbf' size 50M;
create tablespace creditTab4
datafile 'E:\app\Administrator\admin\orcl\creditDataFile04.dbf' size 50M;
create tablespace creditTab5
datafile 'E:\app\Administrator\admin\orcl\creditDataFile05.dbf' size 50M;
create tablespace creditTab6
datafile 'E:\app\Administrator\admin\orcl\creditDataFile06.dbf' size 50M;
create tablespace creditTab7
datafile 'E:\app\Administrator\admin\orcl\creditDataFile07.dbf' size 50M;
create tablespace creditTab8
datafile 'E:\app\Administrator\admin\orcl\creditDataFile08.dbf' size 50M;
create tablespace creditTab9
datafile 'E:\app\Administrator\admin\orcl\creditDataFile09.dbf' size 50M;
create tablespace creditTab10
datafile 'E:\app\Administrator\admin\orcl\creditDataFile10.dbf' size 50M;
create tablespace creditTab11
datafile 'E:\app\Administrator\admin\orcl\creditDataFile11.dbf' size 50M;
create tablespace creditTab12
datafile 'E:\app\Administrator\admin\orcl\creditDataFile12.dbf' size 50M;
--向用户credit授予表空间配额
alter user credit quota 50M on creditTab1;
alter user credit quota 50M on creditTab2;
alter user credit quota 50M on creditTab3;
alter user credit quota 50M on creditTab4;
alter user credit quota 50M on creditTab5;
alter user credit quota 50M on creditTab6;
alter user credit quota 50M on creditTab7;
alter user credit quota 50M on creditTab8;
alter user credit quota 50M on creditTab9;
alter user credit quota 50M on creditTab10;
alter user credit quota 50M on creditTab11;
alter user credit quota 50M on creditTab12;


猜你喜欢

转载自blog.51cto.com/mazongfei/2130130