Oracle分区表详细讲解.ppt
《Oracle分区表详细讲解.ppt》由会员分享,可在线阅读,更多相关《Oracle分区表详细讲解.ppt(46页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、Oracle数据库的表分区,分区表的由来,当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件上),这样查询数据时,不至于每次都扫描整张表。 从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。,分区表概述,大数据对象(表、索引)被分成小物理段 当分区表建立时,记录基于分区字段值被存储到相应分区 分区字段值可以修改.(row movement enabled) 分区可以存储在不同的表空间 分区可以有
2、不同的物理存储参数 分区支持IOT表、对象表、LOB字段Varrays等,什么时候使用分区表,表的大小:当表的大小超过2GB,或对于OLTP系统,表记录超过1000万时,都应该考虑对表进行分区 数据访问特性:基于表的大部分查询应用,只访问表中少量的数据。对于这样的表进行分区,可充分利用分区排除无关数据查询的特性 数据维护:按时间段删除成批的数据,对于这样的表需要考虑进行分区,以满足维护需要,性能 Select和DML只访问指定分区,提高检索速度 并行DML操作 Partitionwise join 可管理性 历史数据清除 提高备份性能 指定分区的数据维护操作 可用性 将故障局限在分区中 缩短恢
3、复时间 分区目标优先级 高性能-数据维护能力-实施难度-高可用性(故障屏蔽能力),使用分区表的好处,分区表的分类,1、范围分区 (Range) 2、列表分区 (List) 3、散列分区 (Hash) 4、组合范围散列分区 5、复合范围散列分区,范围分区,范围分区将数据基于范围映射到每一个分区,这个范围是你在创建分区时指定的分区键决定的。这种分区方式是最为常用的,并且分区键经常采用日期。如:将销售数据按照月份进行分区,范围分区时的规则,使用范围分区时,需要注意以下几个规则 1、每一个分区都必须有一个VALUES LESS THEN子句,它指定了一个不包括在该分区中的上限值。分区键的任何值等于或者
4、大于这个上限值的记录都会被加入到下一个高一些的分区中。 2、所有分区,除了第一个,都会有一个隐式的下限值,这个值就是此分区的前一个分区的上限值。 3、在最高的分区中定义了MAXVALUE。MAXVALUE代表了一个不确定的值。这个值高于其它分区中的任何分区键的值,也可以理解为高于任何分区中指定的VALUE LESS THEN的值,同时包括空值。,范围分区例1,假设有一个CUSTOMER表,表中有数据200000行,我们将此表通过CUSTOMER_ID进行分区,每个分区存储100000行,我们将每个分区保存到单独的表空间中,这样数据文件就可以跨越多个物理磁盘,CREATE TABLE CUSTO
5、MER ( CUSTOMER_ID NUMBER NOT NULL PRIMARY KEY, FIRST_NAME VARCHAR2(30) NOT NULL, LAST_NAME VARCHAR2(30) NOT NULL, PHONE VARCHAR2(15) NOT NULL, EMAIL VARCHAR2(80), STATUS CHAR(1) ) PARTITION BY RANGE (CUSTOMER_ID) ( PARTITION CUS_PART1 VALUES LESS THAN (100000) TABLESPACE CUS_TS01, PARTITION CUS_PART
6、2 VALUES LESS THAN (200000) TABLESPACE CUS_TS02 ),按时间划分 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) ( PARTITION ORD_ACT_PART01 VALUES LESS THAN (TO_DATE(01- MAY -2003,DD-MON-
7、YYYY) TABLESPACEORD_TS01, PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE(01-JUN-2003,DD-MON-YYYY) TABLESPACE ORD_TS02, PARTITION ORD_ACT_PART02 VALUES LESS THAN (TO_DATE(01-JUL-2003,DD-MON-YYYY) TABLESPACE ORD_TS03 ),MAXVALUE CREATE TABLE RangeTable( idd INT PRIMARY KEY , iNAME VARCHAR(10), grad
8、e INT ) PARTITION BY RANGE (grade) ( PARTITION part1 VALUES LESS THEN (1000) TABLESPACE Part1_tb, PARTITION part2 VALUES LESS THEN (MAXVALUE) TABLESPACE Part2_tb );,范围分区的特点,最早、最经典的分区方法 Range分区通过对分区字段值的范围进行分区 Range分区特别适合于按时间周期进行数据的存储:日、周、月、年等 数据管理能力强 数据迁移 数据备份 数据交换 范围分区的数据可能不均匀 范围分区与记录值有关,实施难度和可维护性相对
9、较差,列表(List)分区,如果某列的值只有几个,可以采用列表分区 CREATE TABLE sales_list (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_state VARCHAR2(20), sales_amount NUMBER(10), sales_date DATE) PARTITION BY LIST(sales_state) ( PARTITION sales_west VALUES(California, Hawaii), PARTITION sales_east VALUES (New York, V
10、irginia, Florida), PARTITION sales_central VALUES(Texas, Illinois), PARTITION sales_other VALUES(DEFAULT);,CREATE TABLE ListTable( id INT PRIMARY KEY , name VARCHAR (20), area VARCHAR (10) ) PARTITION BY LIST (area) ( PARTITION part1 VALUES (guangdong,beijing) TABLESPACE Part1_tb, PARTITION part2 VA
11、LUES (shanghai,nanjing) TABLESPACE Part2_tb ); ),列表分区的特点,List分区通过对分区字段的离散值进行分区 List分区是不排序的,而且分区之间也没有关联 List分区适合于对数据离散值进行控制 List分区只支持单个字段 List分区具有与range分区相似的优缺点: 数据管理能力强 各分区的数据可能不均匀,散列(hash)分区,这类分区是在列值上使用散列算法,以确定将行放入哪个分区中。当列的值没有合适的条件时,建议使用散列分区。 散列分区为通过指定分区编号来均匀分布数据的一种分区类型,因为通过在I/O设备上进行散列分区,使得这些分区大小一致
12、。,例一: CREATE TABLE HASH_TABLE ( COL NUMBER(8), INF VARCHAR2(100) ) PARTITION BY HASH (COL) ( PARTITION PART01 TABLESPACE HASH_TS01, PARTITION PART02 TABLESPACE HASH_TS02, PARTITION PART03 TABLESPACE HASH_TS03 ),简写: CREATE TABLE emp( empno NUMBER (4), ename VARCHAR2 (30), sal NUMBER )PARTITION BY HAS
13、H (empno) PARTITIONS 8STORE IN (emp1,emp2,emp3,emp4,emp5,emp6,emp7,emp8);,hash分区最主要的机制是根据hash算法来计算具体某条纪录应该插入到哪个分区中,hash算法中最重要的是hash函数,Oracle中如果你要使用hash分区,只需指定分区的数量即可。建议分区的数量采用2的n次方,这样可以使得各个分区间数据分布更加均匀。,Hash分区的特点,基于分区字段的hash值,自动将记录插入到相应分区 分区一般是2的幂 易于实施 总体性能最佳 适合于静态数据 Hash 分区适合于数据的均匀存储 Hash分区特别适合于PDML
14、和Partition-wise join 支持(hash)local/global indexes 数据管理能力强 Hash分区对数据值无法控制,组合(Composite)分区,CREATE TABLE quarterly_regional_sales (deptno NUMBER, item_no VARCHAR2(20), txn_date DATE, txn_amount NUMBER, state VARCHAR2(2) PARTITION BY RANGE (txn_date) SUBPARTITION BY LIST (state) ( PARTITION q1_1999 VALU
15、ES LESS THAN(TO_DATE(1-APR-1999,DD-MON-YYYY) (SUBPARTITION q1_1999_northwest VALUES (OR, WA), SUBPARTITION q1_1999_southwest VALUES (AZ, UT, NM), SUBPARTITION q1_1999_northeast VALUES (NY, VM, NJ), SUBPARTITION q1_1999_southeast VALUES (FL, GA), SUBPARTITION q1_1999_northcentral VALUES (SD, WI), SUB
16、PARTITION q1_1999_southcentral VALUES (NM, TX), PARTITION q2_1999 VALUES LESS THAN(TO_DATE(1-JUL-1999,DD-MON-YYYY) (SUBPARTITION q2_1999_northwest VALUES (OR, WA), SUBPARTITION q2_1999_southwest VALUES (AZ, UT, NM), SUBPARTITION q2_1999_northeast VALUES (NY, VM, NJ), SUBPARTITION q2_1999_southeast V
17、ALUES (FL, GA), SUBPARTITION q2_1999_northcentral VALUES (SD, WI), SUBPARTITION q2_1999_southcentral VALUES (NM, TX), PARTITION q3_1999 VALUES LESS THAN (TO_DATE(1-OCT-1999,DD-MON-YYYY) (SUBPARTITION q3_1999_northwest VALUES (OR, WA), . SUBPARTITION q4_1999_northcentral VALUES (SD, WI), SUBPARTITION
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 分区表 详细 讲解 讲授
限制150内