001、分区技术在应用的性能、管理性、可用性三个方面大大增强。
002、分区技术允许对表、索引、索引组织表进行分区。
003、每个分区有其自己的名字,同时还可以有其自己的存储设置。
004、非分区表可以有分区索引,分区表也可以有非分区索引。当然,非分区表有非分区索引,分区表有分区索引。
005、Partitioning Key
分区表中的每一行都会被精确地分配到一个分区中。Partitioning Key由一列或多列组成,正是由Partitioning Key决定了每行存储的分区。有了Partitioning Key,Oracle会自动指引insert, update, and delete操作到合适的分区。
006、Partitioned Tables
除了包含long或long RAW数据类型的表,其它表都可以进行分区,分区数可达100万。CLOB和CLOB数据类型的表也可以分区。
007、When to Partition a Table
1、数据量达到了2GB;
2、表包含历史数据,新的数据添加到最新的分区。一个典型的例子就是只有当前月的数据可更新,其余11个月的数据均只读;
3、当一张表的内容必须分布在不同类型的存储设备上。
008、When to Partition an Index
1、移动数据的时候避免重建整个索引;
2、维护部分数据的时候避免使整个索引失效;
3、减少在某列上的索引因为某个值单调增长造成的索引倾斜效果。
009、Partitioned Index-Organized Tables
分区的索引组织表能为索引组织表提供明显的性能、管理性、可用性的改善。
对于索引组织表的分区:
1、分区列必须是主键列的子集;
2、二级索引可以分区(支持本地和全局索引)
3、OVERFLOW data segments are always equipartitioned with the table partitions.溢出的数据段平均分配给表的所有分区。
010、System Partitioning
系统分区允许应用程序控制分区,数据库只提供分区的能力。所有具体分区的事宜都由应用程序决定。
011、Partitioning and LOB Data
存储在lob列中的非结构化的数据(例如图片和文档)同样可以分区。当一张表被分区,所有列都驻扎在分区对应的那个表空间中,除了LOB列,LOB列存储在它们自己的表空间中。