如何计算查询中要读取和写入的块数?

时间:2014-03-26 20:02:28

标签: sql database relational-database

有一个表s(A,C)

A是关键。

s中的记录数:ns = 20,000

块可以包含来自s

的30条记录

问题是:

我需要读取多少个块以及在每个查询中返回答案的数量:

  select*
    from s 
    where A=100,000

  select*
   from s 
   where A<100,000

  select*
   from s 
   where A>100,000

我计算过:

s有20,000/30 = 667块

但我不知道如何解决这个问题。

答案应该是一个数字(计算),而不是sql中的查询。这是关于估计我们访问内存的次数

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你会做类似以下的事情:

select rank() over (order by a) / 30 + 1 as block, *
from s
order by block

这将为每一行提供一个“块号”,每个块有30行。