2012-01-10 28 views
0

我有10块关系R。 S采用1000 我有关系R为属性A也50个独特的记录,并在相关S. 为属性A 5000个唯一的记录我有100个记录每个块上。 请注意,我们假设每个关系中不同值的均匀分布。 S在连接属性A上有一个聚簇索引。DB - 查询处理 - 索引嵌套循环连接

问题是:S中有多少块S存储了参与R连接的记录。我需要用最好和最坏的情况来回答。

我认为,如果R有一个50个独特的记录,它是聚簇索引,将采取最低1块为每一个独特和最大2.然后答案是50或100

但是,为什么不能我是否在每个块中放置了5条独特的记录,所以块的最大数量是10?

+0

这是功课? – 2012-01-10 16:01:44

+0

是的,它是作业 – 2012-01-10 16:07:28

+0

你是否有关系R上属性A的聚簇索引? – 2012-01-10 17:23:59

回答

1

据我理解,这是这种情况:

S具有1000个块与100个记录/块,这导致100000个记录(最大)。这些100000个记录是属性A. 5000独特的(不同的)值

编辑

如果他们都均匀分布的每个唯一值A将在S20中的行。如果R中的A的50个唯一值都存在于S中,则将获取50个行组。

在最好的情况下也都存储起来(由于聚集索引),你需要阅读10块。 [(在每个块的S/100个记录中具有相同值的A * 20行的50个值= 10个块)

在最坏的情况下,A中每个值的20行使用2个块,这将导致100个块你需要从S.

读给你的第二个问题:

既然你有一个包含该列的一切都是为了一个相同的值将被存储起来聚集索引他们只使用一个以上的块,如果他们。不适合一个或如果块是由其他的值填充,因此不能适合在一个块

注意:我可能不完全理解你最初的问题,因此我的答案可能完全错误!