当前位置:文档之家› Oracle分区表详细讲解PPT课件

Oracle分区表详细讲解PPT课件


2020/1/16
12
范围分区的特点
• 最早、最经典的分区方法 • Range分区通过对分区字段值的范围进行分区 • Range分区特别适合于按时间周期进行数据的存储:日、周、月、年
6
范围分区
范围分区将数据基于范围映射到每一个分区, 这个范围是你在创建分区时指定的分区键 决定的。这种分区方式是最为常用的,并 且分区键经常采用日期。如:将销售数据 按照月份进行分区
2020/1/16
7
范围分区时的规则
使用范围分区时,需要注意以下几个规则
•1、每一个分区都必须有一个VALUES LESS THEN子 句,它指定了一个不包括在该分区中的上限值。分区 键的任何值等于或者大于这个上限值的记录都会被加 入到下一个高一些的分区中。
2020/1/16
8
范围分区例1
假设有一个CUSTOMER表,表中有数据 200000行,我们将此表通过 CUSTOMER_ID进行分区,每个分区存储 100000行,我们将每个分区保存到单独的 表空间中,这样数据文件就可以跨越多个 物理磁盘
2020/1/16
9
• CREATE TABLE CUSTOMER
Oracle数据库的表分区
2020/1/16
1
分区表的由来
• 当表中的数据量不断增大,查询数据的速度就 会变慢,应用程序的性能就会下降,这时就应 该考虑对表进行分区。表进行分区后,逻辑上 表仍然是一张完整的表,只是将表中的数据在 物理上存放到多个表空间(物理文件上),这样 查询数据时,不至于每次都扫描整张表。
(
CUSTOMER_IDMARY KEY,
FIRST_NAME VARCHAR2(30) NOT NULL,
LAST_NAME VARCHAR2(30) NOT NULL,
PHONE VARCHAR2(15) NOT NULL,
EMAIL VARCHAR2(80),
( idd INT PRIMARY KEY , iNAME VARCHAR(10), grade INT
) PARTITION BY RANGE (grade) (
PARTITION part1 VALUES LESS THEN (1000) TABLESPACE Part1_tb,
PARTITION part2 VALUES LESS THEN (MAXVALUE) TABLESPACE Part2_tb );
• 从应用程序的角度来看,分区后的表与非分区 表完全相同,使用 SQL DML 命令访问分区后 的表时,无需任何修改。
2020/1/16
2
分区表概述
• 大数据对象(表、索引)被分成小物理段
• 当分区表建立时,记录基于分区字段值被 存储到相应分区
• 分区字段值可以修改.(row movement enabled)
• 分区可以存储在不同的表空间
• 分区可以有不同的物理存储参数
• 分区支持IOT表、对象表、LOB字段
Varrays等
2020/1/16
3
什么时候使用分区表
• 表的大小:当表的大小超过2GB,或对于 OLTP系统,表记录超过1000万时,都应该考 虑对表进行分区
• 数据访问特性:基于表的大部分查询应用,只 访问表中少量的数据。对于这样的表进行分区 ,可充分利用分区排除无关数据查询的特性
(
PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE('01- MAY -200 3','DD-MON-YYYY')) TABLESPACEORD_TS01,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUN-2003',
•2、所有分区,除了第一个,都会有一个隐式的下限 值,这个值就是此分区的前一个分区的上限值。
•3、在最高的分区中定义了MAXVALUE。MAXVALU E代表了一个不确定的值。这个值高于其它分区中的 任何分区键的值,也可以理解为高于任何分区中指定 的VALUE LESS THEN的值,同时包括空值。
• 数据维护:按时间段删除成批的数据,对于这 样的表需要考虑进行分区,以满足维护需要
2020/1/16
4
使用分区表的好处
• 性能 – Select和DML只访问指定分区,提高检索速度 – 并行DML操作 – Partition-wise join
• 可管理性 – 历史数据清除 – 提高备份性能 – 指定分区的数据维护操作
• 可用性
– 将故障局限在分区中
– 缩短恢复时间
• 分区目标优先级
– 高性能->数据维护能力->实施难度->高可用性(故障屏蔽能力)
2020/1/16
5
分区表的分类
1、范围分区 (Range) 2、列表分区 (List) 3、散列分区 (Hash) 4、组合范围散列分区 5、复合范围散列分区
2020/1/16
STATUS CHAR(1)
)
PARTITION BY RANGE (CUSTOMER_ID)
(
PARTITION CUS_PART1 VALUES LESS THAN
(100000) TABLESPACE CUS_TS01,
PARTITION CUS_PART2 VALUES LESS THAN
(220200/10/16000) TABLESPACE CUS_TS02
10
• 按时间划分
CREATE TABLE ORDER_ACTIVITIES
(
ORDER_ID NUMBER(7) NOT NULL,
ORDER_DATE DATE,
TOTAL_AMOUNT NUMBER,
CUSTOTMER_ID NUMBER(7),
PAID
CHAR(1)
)
PARTITION BY RANGE (ORDER_DATE)
'DD-MON-YYYY')) TABLESPACE ORD_TS02,
PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE('01-JUL-2003', 'DD-MON-YYYY')) TABLESPACE ORD_TS03
)
2020/1/16
11
• MAXVALUE • CREATE TABLE RangeTable
相关主题