001、三种基本分区方式:Range、Hash、List。
002、Single-Level Partitioning
表以三种分区方式之一进行分区,使用一列或多列作为分区键。
Range Partitioning
范围分区将数据按照分区键的范围值分配到各个分区。这是最常见的分区方式,通常用于日期。
每个分区有一个value less than语句,这指定一个不包含上界值的分区。任何高于或等于该上界值的数据会被添加到下一个分区。所有的分区,除了第一个分区,都有一个隐含的下界值,该值就是前一个分区的values less than语句中指定的值。
maxvalue值用来指定最高的分区。maxvalue代表一个虚拟无限大的分区键值,比其它任何分区键值都高(包括Null)。
Hash Partitioning
哈希分区是Oracle将哈希算法运用到指定的分区键,通过哈希运算将数据分布到各个分区。哈希算法会将数据平均地分布到所有分区,这使得分区基本上尺寸相等。
哈希分区是将数据均匀分布在设备上的理想方式。哈希分区也是范围分区的一个简单的备用选择,尤其是当没有明显的分区键或没有历史数据的时候。
List Partitioning
列表分区可以显式地控制一个分区有多少行,这通过为每个分区的分区键指定一系列的离散的值来实现。列表分区的优势在于你可以将无序和无关的数据集以普通的方式组合在一起。例如,一个以区域列为分区键的表,东部销售区域可能包含纽约、弗吉尼亚,以及佛罗里达。
通过在列表分区中使用默认分区,使得你可以避免为一个按列表进行分区的表执行所有可能的值。那些没有指定给任何分区的行不会报错。
003、Composite Partitioning
Composite Partitioning是将几种基本的分区方式结合起来的分区方式。一张表以一种数据分区方式进行分区,每个分区进一步以第二种数据分布方式分成子分区。对于每个给定的分区,其子分区代表这逻辑上的数据的子集。
Composite Partitioning支持历史操作,例如添加新的范围分区,同时也提供更高等级的潜在partition pruning以及通过子分区得到的更细粒度的数据存放。
Composite Range-Range Partitioning
Composite Range-Range Partitioning允许数据从两个维度进行逻辑分区,例如按照order_date进行分区,再按照shipping_date进行子分区。
Composite Range-Hash Partitioning
Composite Range-Hash Partitioning使用范围进行分区,每个分区再按哈希进行子分区。Composite Range-Hash Partitioning提供了改良的范围分区的可管理性以及哈心分区的数据分布、条带化和并行的优势。
Composite Range-List Partitioning
Composite Range-List Partitioning使用范围进行分区,分区再按照list进行子分区。Composite Range-List Partitioning提供了反问分区的可管理性和list子分区的明确的可控性。
Composite List-Range Partitioning
Composite List-Range Partitioning是对于一个给定的list分区可以通过逻辑范围来进行子分区。例如,按照country_id进行list分区,再按照order_date进行范围子分区。
Composite List-Hash Partitioning
Composite List-Hash Partitioning将list分区再按hash进行子分区。例如,为了使用partition-wise joins.
Composite List-List Partitioning
Composite List-List Partitioning根据两个维度进行list分区。例如,按照country_id进行list分区,再按照sales_channel进行list子分区。
002、Single-Level Partitioning
表以三种分区方式之一进行分区,使用一列或多列作为分区键。
Range Partitioning
范围分区将数据按照分区键的范围值分配到各个分区。这是最常见的分区方式,通常用于日期。
每个分区有一个value less than语句,这指定一个不包含上界值的分区。任何高于或等于该上界值的数据会被添加到下一个分区。所有的分区,除了第一个分区,都有一个隐含的下界值,该值就是前一个分区的values less than语句中指定的值。
maxvalue值用来指定最高的分区。maxvalue代表一个虚拟无限大的分区键值,比其它任何分区键值都高(包括Null)。
Hash Partitioning
哈希分区是Oracle将哈希算法运用到指定的分区键,通过哈希运算将数据分布到各个分区。哈希算法会将数据平均地分布到所有分区,这使得分区基本上尺寸相等。
哈希分区是将数据均匀分布在设备上的理想方式。哈希分区也是范围分区的一个简单的备用选择,尤其是当没有明显的分区键或没有历史数据的时候。
List Partitioning
列表分区可以显式地控制一个分区有多少行,这通过为每个分区的分区键指定一系列的离散的值来实现。列表分区的优势在于你可以将无序和无关的数据集以普通的方式组合在一起。例如,一个以区域列为分区键的表,东部销售区域可能包含纽约、弗吉尼亚,以及佛罗里达。
通过在列表分区中使用默认分区,使得你可以避免为一个按列表进行分区的表执行所有可能的值。那些没有指定给任何分区的行不会报错。
003、Composite Partitioning
Composite Partitioning是将几种基本的分区方式结合起来的分区方式。一张表以一种数据分区方式进行分区,每个分区进一步以第二种数据分布方式分成子分区。对于每个给定的分区,其子分区代表这逻辑上的数据的子集。
Composite Partitioning支持历史操作,例如添加新的范围分区,同时也提供更高等级的潜在partition pruning以及通过子分区得到的更细粒度的数据存放。
Composite Range-Range Partitioning
Composite Range-Range Partitioning允许数据从两个维度进行逻辑分区,例如按照order_date进行分区,再按照shipping_date进行子分区。
Composite Range-Hash Partitioning
Composite Range-Hash Partitioning使用范围进行分区,每个分区再按哈希进行子分区。Composite Range-Hash Partitioning提供了改良的范围分区的可管理性以及哈心分区的数据分布、条带化和并行的优势。
Composite Range-List Partitioning
Composite Range-List Partitioning使用范围进行分区,分区再按照list进行子分区。Composite Range-List Partitioning提供了反问分区的可管理性和list子分区的明确的可控性。
Composite List-Range Partitioning
Composite List-Range Partitioning是对于一个给定的list分区可以通过逻辑范围来进行子分区。例如,按照country_id进行list分区,再按照order_date进行范围子分区。
Composite List-Hash Partitioning
Composite List-Hash Partitioning将list分区再按hash进行子分区。例如,为了使用partition-wise joins.
Composite List-List Partitioning
Composite List-List Partitioning根据两个维度进行list分区。例如,按照country_id进行list分区,再按照sales_channel进行list子分区。