Oracle表分区

当一张表很大时,查询效率可能急剧下降,特别是那些需要排序的查询。Oracle的表分区功能是一种解决方案。

 原理

表分区的原理是水平分割表,就是把所有的行分散在几个分区。比如1-100行在A分区,101-200行在B分区。

 

作用/优势

显著地提高查询性能(查询负载分散到了多个分区);

对应用程序端透明(不用修改增删改查SQL语句);

提高可用性(Availability);分区之间是相互独立的,一个分区出现问题,不会影响其它分区的数据;

可以对单个分区管理(备份、导入等等);

 

分区策略

针对一个或多个字段选择分区策略:

  • 范围(Range),比如时间、整数范围

  • 散列(Hash),使用Oracle的散列函数

  • 集合/枚举(List),某个字段的值属于一个集合,比如省份

 

创建分区

分区可以看作是表的功能性特征,在创建表的时候可以指定分区。Oracle还提供了在线重定义表的功能,能把为未分区的表转换为分区的表

参考Oracle文档对不同的分区策略的举例和说明

 

管理分区

包括增加、删除、移动、合并分区等等,参考文档Partition Administration

 

缺点

表分区是Oracle数据库的特性,不具备移植性;

购买Oracle的License时,表分区功能需要额外计费(2000多美金);

 

Oracle表分区,布布扣,bubuko.com

Oracle表分区

上一篇:Oracle 监听器无法启动(TNS-12555,TNS-12560,TNS-00525)


下一篇:[LeetCode] Sum Root to Leaf Numbers 求根到叶节点数字之和