分区表通过对分区列进行判断,把满足不同条件的分区列对应的记录保存在不同的分区中。
一、何为分区表
什么情况下会使用分区表?
表中已有大量数据,或预计到表中将会保存大量的数据
可以按照预期(月份、区域、dml)对表中的数据执行查询和更新
什么是分区键?
创建分区表,需要分区键;分区表的每一列都明确的归属一个分区,划分的依据就是分区键。
有如下特点:
由1~~16个列顺序组成
不能包含Level、RowId、MisLabel伪列
不能包含为空的列
Oracle支持哪些类型的分区方式?
范围分区——将分区表中的记录映射到基于分区键列值范围的分区,例如:按照月份划分
散列分区——基于分区键的散列值进行映射到分区中,也就是字段的hash值进行均匀分布,尽可能的实现各分区所散列的数据相等。
列表分区——根据分区键的值明确定义其归属的分区,例如:华北、东北等区块
组合范围-散列分区——范围和散列的组合,例如:按月份对业绩进行分区,并用散列分区
组合范围-列表分区——范围和列表的组合,例如:按月份对业绩进行分区,并用地域分区
什么情况下使用分区表,在多大的数据量时?
记录数在1000w以上
表中数据有百万,但每条记录的数量比较大
二、应用场景
需求:信用卡消费流程
--创建用户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_date进行分区
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;