Oracle数据库中的直方图分为两种类型:Frequency(频率)和Height Balanced(高度平衡)。
-
Frequency(频率)直方图:
- 如果存储在数据字典里描述目标列直方图的Bucket的数量等于目标列的DISTINCT值的数量,那么这种类型的直方图就是Frequency类型的直方图。
- Frequency直方图只适用于那些目标列的DISTINCT值数量小于或等于254的情形。
- 在Oracle 12c中,Frequency直方图所对应的Bucket的数量可以超过254。
-
Height Balanced(高度平衡)直方图:
- 如果存储在数据字典里描述目标列直方图的Bucket的数量小于目标列的DISTINCT值的数量,则这种类型的直方图就是Height Balanced类型的直方图。
在Oracle 12c中,又新增了两种类型的直方图,分别是顶级频率直方图(Top Frequency Histogram)和混合直方图(Hybrid Histogram)。
**顶级频率直方图(Top Frequency Histogram)**是一种直方图类型,它主要关注目标列的最高频率的DISTINCT值。这种直方图主要用于那些目标列的DISTINCT值数量大于Bucket数量的场景。
**混合直方图(Hybrid Histogram)**则是Oracle 12c中新增的另一种直方图类型。这种直方图结合了Frequency和Height Balanced两种直方图的特性,以更好地适应不同的情况。
举例来说,如果一个复合直方图显示了一个实部和虚部分别具有确定范围的复数场中数据点的个数,这就是混合直方图的一个应用。在这个例子中,实部范围和虚部范围被划分为不同的区域,数据点的数量被计算并在直方图中显示。
混合直方图和Frequency有什么区别
混合直方图和Frequency直方图的主要区别在于它们各自处理和表示数据的方式。
Frequency直方图主要关注数据的频率分布,即每个数值或类别在数据集中出现的次数。这种直方图通常用于展示数据的集中趋势和分布情况,帮助我们了解数据的整体特征。在Frequency直方图中,数据的频率被映射到直方图的高度,每个柱子的高度代表了相应数值的频率。
混合直方图则结合了Frequency和Height Balanced两种直方图的特性。它和Frequency直方图一样,都关注数据的频率分布,但在处理和表示方式上有所不同。混合直方图通常将数据分布的频率和高度结合起来,以更精细的方式描述数据的分布情况。具体来说,混合直方图可能会将Frequency直方图中的柱子进一步细分,并添加更多的信息,比如每个柱子的中心点、最小值、最大值等。
总的来说,混合直方图和Frequency直方图的主要区别在于它们对数据的处理和表示方式上。Frequency直方图强调数据的整体分布情况,而混合直方图则更注重数据的细粒度分布和统计信息。