前段时间,看了罗女士( 资深技术顾问 - Oracle 中国 顾问咨询部)关于《大批量数据处理技术的演讲》视频,感觉受益良多,结合多年的知识积累,柯南君给大家分享一下: 交流内容: 一、Oracle的分区技术 (一)分区技术内容 1. 什么是分区? 分区就是将一个非常大的table或者index 按照某一列的值,分解为更小的,易于管理的逻辑片段---分区。将表或者索引分区不会影响SQL语句以及DML(见备注)语句,就和使用非分区表一样,每个分区拥有自己的segment(见备注),因为,DDL(见备注)能够将比较大的任务分解为更小的颗粒。分区表只有定义信息,只有每个存放数据的分区才有各自的segment。就好象拥有多个相同列名,列类型的一个大的视图。 大数据对象(表,索引)被分成小物理段; 当分区表建立时,记录基于分区字段值被存储到相应的分区; 分区字段值可以修改(row movement enable); 分区可以存储在不同的表空间; 分区可以有不同的物理存储参数; 分区可以支持IOT表,对象表,LOB字段,varrays等; 备注: ① DML(data manipulation language):
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言; ② segment(data manipulation language): 段(segment)是一种在数据库中消耗物理存储空间的任何实体(一个段可能存在于多个数据文件中,因为物理的数据文件
是组成逻辑表空间的基本物理存储单位) 2.分区的好处? 性能 - Select 和 DML操作只访问指定分区 - 并行DML操作 - Patition - wise Join 可管理性:数据删除,数据备份 - 历史数据清除 - 提高备份性能 - 指定分区的数据维护操作 可用性 - 将故障局限在分区中 - 缩短恢复时间 分区目标优先级 - 高性能->数据维护能力->实施难度->高可用性(故障屏蔽能力) ③ 如何实施分区? file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml\wps7B9E.tmp.png A . Range Partitioning(范围分区)< |