【问题标题】:is it uniform distribution HBC ORACLE HISTOGRAME?是均匀分布的HBC ORACLE HISTOGRAM吗?
【发布时间】:2021-12-05 09:56:54
【问题描述】:

我们有这个数据:表 R(A,..) 具有属性 A,R 的 nbLine 是 1000,A 的不同值是 500。

data are displayed like this : bucket -> end_point_value.
1  -> 800
2  -> 900
3  -> 1000
4  -> 1200
5 -> 1500
6 ->  2000
7 -> 2300
8 -> 2400
9 -> 2550
10 -> 2590

问题是:这个直方图是证实还是否定了均匀分布的假设?

我想我不能确认也不能否认,你怎么看?

【问题讨论】:

    标签: oracle histogram uniform-distribution


    【解决方案1】:

    首先你要问,柱状图类型是定义在列上的。

    Oracle 提供了四种不同的histogram types,如果您想声明均匀分布,必须定义frequency 直方图。

    频率直方图对于每个不同的值都有一个桶(存储在ENDPOINT_VALUE 中,频率是(加法的)存储在ENDPOINT_NUMBER 列中)

    因此,如果您的直方图只有 10 个桶(如您在数据中显示的那样),您就准备好了,您可以对分布一无所知。

    均匀分布示例

    create table r as
    select
    1 + trunc((rownum-1)/2) A
    from dual connect by level <= 1000;
    
    select count(*), count(distinct a), min(a), max(a) from r;
    
      COUNT(*) COUNT(DISTINCTA)     MIN(A)     MAX(A)
    ---------- ---------------- ---------- ----------
          1000              500          1        500
    

    使用 500 个桶创建频率直方图

    exec dbms_stats.gather_table_stats(ownname=>user, tabname=>'R', method_opt=>'for all columns size 500');
    
    select NUM_BUCKETS, HISTOGRAM from user_tab_columns where table_name = 'R';
    
    NUM_BUCKETS HISTOGRAM      
    ----------- ---------------
            500 FREQUENCY   
    
    select ENDPOINT_VALUE, ENDPOINT_NUMBER from user_histograms where table_name = 'R' order by ENDPOINT_VALUE;        
     
     ENDPOINT_VALUE, ENDPOINT_NUMBER
    1                   2
    2                   4
    3                   6
    4                   8 
    ...
    498                 996
    499                 998
    500                 1000
    

    【讨论】:

    • 现在,我认为它否定了这个假设,因为我们有 500 个属性 A 的不同值,所以如果它统一我们应该为每个值有 2 个外观,所以每个桶有 50 个不同的值(因为 100 个值每个桶:1000 nbLines)。看看桶 10 他们只能有 40 个不同的值,所以不可能是均匀分布的。你觉得呢?
    • 请重新阅读答案。在不知道直方图类型的情况下,您对直方图数据无话可说。解释取决于类型。
    • 它是一个高度平衡的直方图。
    猜你喜欢
    • 2011-04-04
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    相关资源
    最近更新 更多