20XX年第6章查询处理和优化.pptVIP

  • 0
  • 0
  • 约5.99千字
  • 约 56页
  • 2019-05-29 发布于天津
  • 举报
嵌套循环算法 /*设R有n个元组,S有m个元组*/ i:=1,j:=1; while(i≤n) do{while(j≤m) do{if R(i)[A] = S(j)[B] then 输出R(i),S(j)至T; j := j + 1 } j:=1,i:=i+1 } T为R和S连接的结果 R为外关系(outer relation), S为内关系(inner relation)。 事实上,关系是以物理块为单位取到内存,设R和S各有一缓冲块, PR为R的块因子(每块中所含的元组数)。则R每次I/O取PR个元组,可改进上述算法,使S扫描一次可以与R的PR个元组比较,那么S的扫描次数为bR=[n/PR] 。 R S 物理块 物理块 假设,bR和bS分别为关系R和关系S占用物理块的数目(bR=[n/PR]),nB为可供连接使用的缓冲块数。若将其中的nB-1块作为外关系缓冲块,1块作为内关系缓冲块。 则以R为外关系、S为内关系,用嵌套循环法进行连接所需访问的物理块数为bR+[bR/(nB-1)]*bS,对应最小I/O值。 问题:增加外关系R的缓冲块(每次多取几块R的数据)或增加内关系S的缓冲块都能减少I/O次数。 为什么将nB-1块作为外关系缓冲块,

文档评论(0)

1亿VIP精品文档

相关文档