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