我一直在尝试最后几天来解决以下问题。
假设我们有以下两个表。
电影(ID',标题,国家,制作_日期)
演员(ID'、姓名、类型、国籍)
演员(演员_ID',电影_ID',角色)
给定信息:
Film 拥有 N(film)=50.000 条记录,r(film)=40bytes,顺序组织,PK 索引
Actor 拥有 N(actor)=200.000 条记录 r(actor)=80bytes,堆组织,PK 上的索引
Cast 持有 N(cast)=100.000 条记录,r(cast)=25 字节,堆组织,无索引
执行计划的执行树和关系表达式如下图所示:
对于演员和电影之间的较低级别的连接,我正在计算以下内容:
块嵌套循环连接:Bcast x Bfilm
索引嵌套循环连接:Bcast + Ncast x Cfilm
我保留了 INLJ 给出的最小值。
问题:
现在我如何计算连接表的大小和新的 r,它是新连接表上记录的大小,以便在计算成本后继续计算已经连接的表与表 actor 之间的上层连接B中的那个join操作会占用多少块?