oracle分区技术-大批量数据操作11086.pptx
《oracle分区技术-大批量数据操作11086.pptx》由会员分享,可在线阅读,更多相关《oracle分区技术-大批量数据操作11086.pptx(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Copyright 2006,Oracle.All rights reserved.OracleOracle数据库高级技术交流数据库高级技术交流-大批量数据处理技术大批量数据处理技术Oracle(中国中国)顾问咨询部顾问咨询部罗罗 敏敏 资深技术顾问资深技术顾问电话:电话:13321161702eMail:MCopyright 2006,Oracle.All rights reserved.交流内容交流内容分区技术报表优化技术 并行处理应用经验Copyright 2006,Oracle.All rights reserved.OracleOracle的分区技术的分区技术Copyright 20
2、06,Oracle.All rights reserved.分区技术内容分区技术内容什么是分区?分区的好处?如何实施分区?如何评估分区的效果?Copyright 2006,Oracle.All rights reserved.OracleOracle的分区技术基本原理的分区技术基本原理分而治之分而治之SB_ZSXX按年度进行分区按年度进行分区2003200420052006Copyright 2006,Oracle.All rights reserved.分区概述分区概述大数据对象(表,索引)被分成小物理段当分区表建立时,记录基于分区字段值被存储到相应分区。分区字段值可以修改。(row mov
3、ement enabled)分区可以存储在不同的表空间分区可以有不同的物理存储参数分区支持IOT表,对象表,LOB字段,varrays等Copyright 2006,Oracle.All rights reserved.分区技术的效益和目标分区技术的效益和目标性能Select和DML操作只访问指定分区并行DML操作Partition-wise Join可管理性:数据删除,数据备份历史数据清除提高备份性能指定分区的数据维护操作可用性将故障局限在分区中缩短恢复时间分区目标优先级 高性能 数据维护能力-实施难度 高可用性(故障屏蔽能力)Copyright 2006,Oracle.All rights
4、 reserved.分区方法分区方法分区方法:范围 -8Hash -8i列表 -9i组合 -8iRangepartitioningHashpartitioningCompositepartitioningListpartitioningCopyright 2006,Oracle.All rights reserved.123CREATE TABLE sales (acct_no NUMBER(5),person VARCHAR2(30),sales_amount NUMBER(8),week_no NUMBER(2)PARTITION BY RANGE(week_no)(PARTITION P
5、1 VALUES LESS THAN(4)TABLESPACE data0,PARTITION P2 VALUES LESS THAN(8)TABLESPACE data1,.PARTITION P13 VALUES LESS THAN(53)TABLESPACE data12 );分区字段:分区字段:week_no.VALUES LESS THAN 必须是确定值必须是确定值每个分区可以单独指定物理属性每个分区可以单独指定物理属性123范围分区例范围分区例Copyright 2006,Oracle.All rights reserved.最早、最经典的分区算法Range分区通过对分区字段值的范
6、围进行分区Range分区特别适合于按时间周期进行数据的存储。日、周、月、年等。数据管理能力强数据迁移数据备份数据交换范围分区的数据可能不均匀范围分区与记录值相关,实施难度和可维护性相对较差范围分区特点范围分区特点Copyright 2006,Oracle.All rights reserved.Hash分区例分区例create table CUSTOMERS(.column definitions.)pctfree 0 nologgingstorage(initial 40m next 40m pctincrease 0)partition by hash(customer_no)partit
7、ions 8 store in(cust_data01,cust_data02)create table CUSTOMERS(.column definitions.)pctfree 0 nologgingstorage(initial 40m next 40m pctincrease 0)partition by hash(customer_no)(partition cust_p01 tablespace cust_data01,partition cust_p02 tablespace cust_data02,partition cust_p03 tablespace cust_data
8、03,partition cust_p04 tablespace cust_data04,partition cust_p05 tablespace cust_data05,partition cust_p06 tablespace cust_data06,partition cust_p07 tablespace cust_data07,partition cust_p08 tablespace cust_data08)Copyright 2006,Oracle.All rights reserved.Hash分区特点分区特点基于分区字段的HASH值,自动将记录插入到指定分区。分区数一般是2
9、的幂易于实施总体性能最佳适合于静态数据HASH分区适合于数据的均匀存储 HASHHASHHASHHASH分区特别适合于分区特别适合于分区特别适合于分区特别适合于PDMLPDMLPDMLPDML和和和和partition-wise joinspartition-wise joinspartition-wise joinspartition-wise joins。支持(hash)local indexes9i 不支持(hash)global indexes10g 支持(hash)global indexes HASH分区数据管理能力弱HASH分区对数据值无法控制Copyright 2006,Ora
10、cle.All rights reserved.列表分区例列表分区例create table addresses(.column definitions.)pctfree 0 nologgingstorage(initial 40m next 40m pctincrease 0)partition by list(city_name)(partition addr_p01 values(WELLINGTON)tablespace addr_data01,partition addr_p02 values(CHRISTCHURCH)tablespace addr_data02,partition
11、 addr_p03 values(DUNEDIN,INVERCARGILL)tablespace addr_data03,partition addr_p04 values(AUCKLAND)tablespace addr_data04,partition addr_p05 values(HAMILTON,ROTORUA,TAURANGA)tablespace addr_data05)Copyright 2006,Oracle.All rights reserved.列表分区特点列表分区特点ListList分区通过对分区字段的离散值进行分区。分区通过对分区字段的离散值进行分区。ListList
12、分区是不排序的,而且分区之间没有关联关系分区是不排序的,而且分区之间没有关联关系ListList分区适合于对数据离散值进行控制。分区适合于对数据离散值进行控制。ListList分区只支持单个字段。分区只支持单个字段。ListList分区具有与范围分区相似的优缺点分区具有与范围分区相似的优缺点数据管理能力强ListList分区的数据可能不均匀ListList分区与记录值相关,实施难度和可维护性相对较差Copyright 2006,Oracle.All rights reserved.复合分区例复合分区例create table daily_trans_data(.column definitio
13、ns.)partition by range(trans_datetime)subpartition by hash(customer_no)subpartitions 8 store in(dtd_data01,dtd_data02)(partition dtd_20010620 values less than(to_date(21-jun-2001,dd-mon-yyyy)(subpartition dtd_20010620_s01 ,subpartition dtd_20010620_s02 ,subpartition dtd_20010620_s03 tablespace dtd_d
14、ata03 ,subpartition dtd_20010620_s04 tablespace dtd_data04 ,subpartition dtd_20010620_s05 tablespace dtd_data05 ,subpartition dtd_20010620_s06 tablespace dtd_data06 ,subpartition dtd_20010620_s07 tablespace dtd_data07 ,subpartition dtd_20010620_s08 tablespace dtd_data08 ),partition dtd_20010621 valu
15、es less than(to_date(22-jun-2001,dd-mon-yyyy),partition dtd_20010622 values less than(to_date(23-jun-2001,dd-mon-yyyy)subpartitions 4 )Copyright 2006,Oracle.All rights reserved.复合分区图示复合分区图示Copyright 2006,Oracle.All rights reserved.复合分区特点复合分区特点OracleOracle支持的支持的CompositeComposite分区:分区:Range-Hash,Rang
16、e-List Range-Hash,Range-List既适合于历史数据,又适合于数据均匀分布与范围分区一样提供高可用性和管理性更好的PDML和partition-wise joins性能实现粒度更细的操作支持复合 local indexes不支持复合compositeglobal indexes?Copyright 2006,Oracle.All rights reserved.分区索引分区索引不分区分区不分区 分区表表索引索引Copyright 2006,Oracle.All rights reserved.GlobalNonpartitioned indexLocal partition
17、ed indexGlobal Partitioned Index不同的分区索引不同的分区索引绍兴绍兴杭州杭州温州温州03年年04年年08年年Copyright 2006,Oracle.All rights reserved.分区索引分区索引分区表索引的分类:Local Prefixed indexLocal Non-prefiexed indexGlobal Prefixed indexNon Partition IndexGlobal索引的分区不同与表分区Local索引的分区与表分区相同An index is prefixed if it is partitioned on a left p
18、refix of the index columns.分区表上的非分区索引等同于Global索引Copyright 2006,Oracle.All rights reserved.分区索引分区索引Global索引必须是范围分区-9i之前Global索引可以是HASH分区-10g新特性Global索引不支持Bitmap索引Unique索引必须是prefixed,或者包含分区字段Local索引(non-prefixed,non-unique)可以不包含分区字段Copyright 2006,Oracle.All rights reserved.create index cust_idx1 on cu
19、stomers(customer_name)global partition by range(customer_name)(partition cust_p01 values less than(H)tablespace cust_index01,partition cust_p02 values less than(N)tablespace cust_index02,partition cust_p03 values less than(T)tablespace cust_index03,partition cust_p04 values less than(MAXVALUE)tables
20、pace cust_index04)create index cust_idx2 on customers(customer_no)local(partition cust_idx_p01 tablespace cust_index01,partition cust_idx_p02 tablespace cust_index02,partition cust_idx_p03 tablespace cust_index03,partition cust_idx_p04 tablespace cust_index04,partition cust_idx_p05 tablespace cust_i
21、ndex05,partition cust_idx_p06 tablespace cust_index06,partition cust_idx_p07 tablespace cust_index07,partition cust_idx_p08 tablespace cust_index08)create index cust_idx3 on customers(customer_type)local;分区索引举例分区索引举例Copyright 2006,Oracle.All rights reserved.分区表索引的使用分区表索引的使用OLTP系统中的建议Global和unique lo
22、cal index性能优于nonunique local indexLocal index提供了更好的可用性数据仓库系统中的建议Local index更适合于数据装载和分区维护在大量数据统计时,能充分利用Local index并行查询能力在性能、高可用性和可管理性之间进行平衡Copyright 2006,Oracle.All rights reserved.分区索引选择策略分区索引选择策略Copyright 2006,Oracle.All rights reserved.分区裁剪功能分区裁剪功能Partition pruning:Only the relevant partitions are
23、 accessed.99-May99-Apr99-Feb99-Jan99-Mar99-JunsalesSQL SELECT SUM(sales_amount)2 FROM sales 3 WHERE sales_date BETWEEN 4 TO_DATE(01-MAR-1999,5 DD-MON-YYYY)AND 6 TO_DATE(31-MAY-1999,7 DD-MON-YYYY);Copyright 2006,Oracle.All rights reserved.分区裁剪举例分区裁剪举例1 select*from daily_trans_summ 2*where trans_datet
24、ime between to_date(25-jun-2001 08,DD-mon-yyyy hh24)and to_date(28-jun-2001 18,DD-mon-yyyy hh24)Partition Partition Operation Options Object Name Start Stop -SELECT STATEMENT PARTITION RANGE ITERATOR 231 234 TABLE ACCESS FULL DAILY_TRANS_SUMM 231 234 1 select*from daily_trans_summ 2*where trans_date
25、time in(25-jun-2001,28-jun-2001)Partition Partition Operation Options Object Name Start Stop -SELECT STATEMENT PARTITION RANGE INLIST KEY(INLIST)KEY(INLIST)TABLE ACCESS FULL DAILY_TRANS_SUMM KEY(INLIST)KEY(INLIST)Copyright 2006,Oracle.All rights reserved.Nonpartition-wise joinFull partition-wise joi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 分区 技术 大批量 数据 操作 11086
限制150内