Oracle海量数据优化-02分区在海量数据库中的应用-更新中

时间:2021-12-20 21:13:26

思维导图

Oracle海量数据优化-02分区在海量数据库中的应用-更新中


概述

以前梳理了一篇文章, 案例不是很充分

Oracle-分区表解读

故本篇博文系统的再重新阐述一下

当我们对海量数据的Oracle数据库进行管理和维护时,几乎无一例外的使用了分区(partition)技术。

分区是Oracle数据库中对海量数据存储管理提供的一个应用很广泛的技术,它可以非常方便的加载数据、删除数据和移动数据,特别是对于一个拥有海量数据的OLAP及数据仓库系统的数据库来说,更是如此。

总体看来,分区有如下特点

  • 可以单独对分区及分区索引进行操作。 在分区对象中,可以只对单独分区进行数据加载、数据备份、数据恢复以及索引重建等操作,而不必对整个对象进行操作。 这对于一个非常巨大的表是非常有用的,通常来讲,一个分区的操作不会妨碍另外分区数据的处理。
  • 提高查询效率。在某些时候分区让查询可以更快,因为Oracle有一个分区裁剪功能,只对需要处理的分区进行扫描,这样扫描的数据块会大大的减少,使查询效率提高
  • 分区更利于数据维护, 可以只对单独分区进行备份、恢复,这样就可以大大的缩短数据备份、恢复的时间
  • 分区有利于数据库数据的过期化处理,后面详细讨论。

这里我们着重的阐述以下三种分区

  • 范围分区(Range Partition)
  • 哈希分区(Hash Partition)
  • 列表分区(List Partition)

范围分区(Range Partition)

范围分区,顾名思义就是根据某个字段的值,以固定的一个范围作为一个分区来划分的依据。

在实际应用中,按照时间字段来换分分区,具有非常重大的意义。

比如在下面的例子中,我们给数据表SALE_DATA在时间字段sales_date上按照每个月一个分区的方式来创建一个范围分区:

这里写代码片

哈希分区(Hash Partition)


列表分区(List Partition)