思维导图
概述
以前梳理了一篇文章, 案例不是很充分
故本篇博文系统的再重新阐述一下
当我们对海量数据的Oracle数据库进行管理和维护时,几乎无一例外的使用了分区(partition)技术。
分区是Oracle数据库中对海量数据存储管理提供的一个应用很广泛的技术,它可以非常方便的加载数据、删除数据和移动数据,特别是对于一个拥有海量数据的OLAP及数据仓库系统的数据库来说,更是如此。
总体看来,分区有如下特点
可以单独对分区及分区索引进行操作。 在分区对象中,可以只对单独分区进行数据加载、数据备份、数据恢复以及索引重建等操作,而不必对整个对象进行操作。 这对于一个非常巨大的表是非常有用的,通常来讲,一个分区的操作不会妨碍另外分区数据的处理。
提高查询效率。在某些时候分区让查询可以更快,因为Oracle有一个分区裁剪功能,只对需要处理的分区进行扫描,这样扫描的数据块会大大的减少,使查询效率提高
分区更利于数据维护, 可以只对单独分区进行备份、恢复,这样就可以大大的缩短数据备份、恢复的时间
分区有利于数据库数据的过期化处理,后面详细讨论。
这里我们着重的阐述以下三种分区
范围分区(Range Partition)
哈希分区(Hash Partition)
列表分区(List Partition)
范围分区(Range Partition)
范围分区,顾名思义就是根据某个字段的值,以固定的一个范围作为一个分区来划分的依据。
在实际应用中,按照时间字段来换分分区,具有非常重大的意义。
比如在下面的例子中,我们给数据表SALE_DATA在时间字段sales_date上按照每个月一个分区的方式来创建一个范围分区:
这里写代码片