【问题标题】:Estimated size of the self-join operation on a relation R, given a histogram for R给定 R 的直方图,估计关系 R 上的自连接操作的大小
【发布时间】:2011-11-29 08:57:13
【问题描述】:

查询优化器通常使用数据分布摘要来估计查询处理期间生成的中间表的大小。一种流行的此类汇总方案是直方图,其中输入范围被划分为桶,并保持每个桶中落入的元组数量的累积计数。为了估计的目的,假设桶内的分布是均匀的。

下面显示了一个这样的直方图,用于关系 R 与域 [1..10] 的离散属性 a:

Bucket 1: range = [1..2] Cumulative tuple count = 6 

Bucket 2: range = [3..8] Cumulative tuple count = 30

Bucket 3: range = [9..10] Cumulative tuple count = 10

自连接操作R x R的估计大小是多少

A) 46
B) 218
C) 248
D) 1,036
E) 5,672

解决方案中给出的答案:B

如何计算答案?

【问题讨论】:

    标签: histogram self-join database-relations


    【解决方案1】:

    属性R 的自连接大小等于属性R 的每个值的频率之和。

    这里的频率是在桶中给出的,例如第一个桶有 2 个值 r,频率 = 6,所以我们可以假设桶 1 中每个值的频率是频率 = 3,类似地,桶 2 的每个频率 = 30/6 = 5,桶 3 的每个频率值 = 10/2 = 5。

    因此,大小为

    Size =  [(3^2)*2] + [(5^2)*6] + [(5^2)*2]
         =  218
    

    【讨论】:

      【解决方案2】:

      我一直在尝试自己弄清楚这一点(它来自 GRE 计算机科学科目考试准备考试)。 到目前为止,我还没有找到关于为什么答案是 218 的答案,但我发现了给出的数字和正确答案之间的联系。

      事实证明,累积元组计数的平方和除以每个桶中离散值的数量,得到 218。不那么抽象:6²/2 + 30²/5 + 10²/2 = 218

      这不是一个答案,但至少有一个联系 =)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-09-27
        • 2019-01-16
        • 2015-05-31
        • 2022-11-15
        • 2013-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多