rang 分区 --> 范围分区
list 分区 --> 列表分区
hash分区 --> 哈希分区
组合分区策略
rang-rang
rang-list
rang-hash
list-rang
list-list
list-hash
rang 分区 --> 范围分区 --> order_date 订单日期
连续值存放在各个区
list 分区 --> 列表分区 --> country 国家
离散值存放在各个区
hash分区 --> 哈希分区 --> customer_id 客户编号
打散数据存放在各个区
order数据表 --> 分区表
分区前需要选定分区字段
order_date --> 范围分区
早于2015年 2016年 2017年 2018年
country --> 列表分区
中国 美国 英国
customer_id --> 哈希分区
8个分区
创建分区表注意:
1、需要选择分区字段
2、需要选择分区策略
select * from order(分区表) where customer_id=100
--> customer_id --> hash分区
select * from order(分区表) where customer_id between 1000 and 2000;
--> customer_id --> rang分区
select * from order(分区表) where countroy='中国'
--> countroy --> list分区
select * from order(分区表) where order_date less than 日期;
--> order_date --> rang分区
select * from order(分区表) where order_date =‘日期’
--> order_date --> hash分区
将普通数据表转换成分区表,需要选择分区字段,需要选择分区策略,而这些操作都是业务相关的
只有清楚了业务SQL的执行比例,才能进行分区策略的指定,这种分区策略都是SQL开发指定的
分区表实验中经常使用已有的数据表创建分区表,体会分区表的变化
从Oracle提供的示例数据块中可以拿到很多数据
sample schema --> 示例对象
--> 包含很多用户和用户的数据表
--> scott / sh 用户
--> scott用户及数据表
--> sh用户及数据表(数据表多,数据量大)
新安装数据库
export ORACLE_HOME=/u01/app/oracle/product/11.2/db_2
下述分区表实验,涉及到的数据来自于sh用户下的sales表
sh用户/scott用户均来自于Oracle的示例数据库
SQL> select username,account_status from dba_users where username='HR';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
HR EXPIRED & LOCKED
alter user sh identified by 123123 account unlock;
grant dba to sh;
实验前查看下磁盘空间大小
[oracle@oracle /]$ df -h /oradataorcl/orcl
Filesystem Size Used Avail Use% Mounted on
/dev/sdc1 5.0G 2.0G 2.8G 41% /oradataorcl
创建表空间
CREATE TABLESPACE TBS1 DATAFILE '/oradataorcl/orcl/TBS1.DBF' SIZE 100M;
CREATE TABLESPACE TBS2 DATAFILE '/oradataorcl/orcl/TBS2.DBF' SIZE 100M;
CREATE TABLESPACE TBS3 DATAFILE '/oradataorcl/orcl/TBS3.DBF' SIZE 100M;
CREATE TABLESPACE TBS4 DATAFILE '/oradataorcl/orcl/TBS4.DBF' SIZE 100M;
CREATE TABLESPACE TBS5 DATAFILE '/oradataorcl/orcl/TBS5.DBF' SIZE 100M;
生产中为提高性能,应该是不同的dg
--> 此处创建多个表空间
--> 分区表对应的段可以属于不同的表空间,提高读写性能




