Oracle 分区表总结.pdf
文本预览下载声明
醉醉爱爱梁梁静静茹茹
三三生生七七世世,,永永堕堕阎阎罗罗,,只只为为情情故故,,虽虽死死不不悔悔
OOrraaccllee 分分区区 总总结结
分类: Oracle体系结构 2013-12-11 14:53 26人阅读 评论 (0) 收藏 举报
分区
OOrraaccllee 分分区区 总总结结
一. 分区 理论知识
Oracle提供了分区技术以支持VLDB (Very Large DataBase)。分区 通过对分区列的判断,把分区列
不同的记录,放到不同的分区中。分区完全对应用透明。
Oracle的分区 可以包括多个分区,每个分区都是一个独立的段 (SEGMENT),可以存放到不同的
空间中。查询时可以通过查询 来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。
When to Partition a Table什么时候需要分区 ,官网的2个建议如下:
(1)Tables greater than 2GB should always be considered for partitioning.
(2)Tables containing historical data, in which new data is added into the newest partition. A
typical example is a historical table where only the current months data is updatable and the other
11 months are read only.
在oracle 10g中最多支持:1024k-1个分区:
Tables can be partitioned into up to 1024K-1 separate partitions
联机文档上有关分区 和索引的说明:
Partitioned Tables and Indexes
/docs/cd/B19306_01/server.102/b14220/partconc.htm#sthref2604
分区提供以下优点:
(1)由于将数据分散到各个分区中,减少了数据损坏的可能性;
(2)可以对单独的分区进行备份和恢复;
(3)可以将分区映射到不同的物理磁盘上,来分散IO;
(4)提高可管理性、可用性和性能。
Oracle 10g提供了以下几种分区类型:
(1)范围分区 (range);
(2)哈希分区 (hash);
(3)列 分区 (list);
(4)范围-哈希复合分区 (range-hash);
(5)范围-列 复合分区 (range-list)。
1
Range分区:
Range分区是应用范围比较广的 分区方式,它是以列的值的范围来做为分区的划分条件,将记录存放到列值所在的
range分区中。
如按照时间划分,2010年1月的数据放到a分区,2月的数据放到b分区,在创建的时候,需要指定基于
的列,以及分区的范围值。
在按时间分区时,如果某些记录暂无法预测范围,可以创建maxvalue分区,所有不在指定范围内的记
录都会被存储到maxvalue所在分区中。
如:
create table pdba (id number, time date) partition by range (time)
(
partition p1 values less than (to_date(2010-10-1, yyyy-mm-dd)),
partition p2 values less than (to_date(2010-11-1, yyyy-mm-dd)),
partition p3 values less than (to_date(2010-12-1, yyyy-mm-dd)),
partition p4 valu
显示全部