2012-01-10 59 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.

讀給你的第二個問題:

既然你有一個包含該列的一切都是爲了一個相同的值將被存儲起來聚集索引他們只使用一個以上的塊,如果他們。不適合一個或如果塊是由其他的值填充,因此不能適合在一個塊

注意:我可能不完全理解你最初的問題,因此我的答案可能完全錯誤!