需要的块访问次数,sql

时间:2016-05-12 21:37:17

标签: sql database size block record

CoolCaravan公司有一个数据库,其中包括一个名为Sites的表。表中的每条记录都包含以下字段: SiteID:10个字节 描述:80个字节 位置:20个字节 Gridref:10个字节

假设该表有1,300条记录并且物理存储在一个 磁盘块上的文件。每个磁盘块的大小为1,600字节。文件 在属性Description上排序。显示所有工作,计算 的:

  1. 记录大小= 120

  2. 阻塞因子= 10

  3. 存储整个文件所需的块数= 160

  4. 平均执行所需的块访问次数 以下SQL查询:

    SELECT * FROM Sites WHERE Description = 'Banff Links';
    
  5. 平均执行所需的块访问次数 以下SQL查询(假设Gridref是唯一的):

    SELECT * FROM Sites WHERE Gridref = 'NJ689637'; 
    
  6. 我正在读考试,我的笔记不清楚如何回答问题的最后两部分。

1 个答案:

答案 0 :(得分:0)

我从不擅长回答这些测试 我会说:
5. 160(块数)/ 2
表格不是由Gridref排序的,因此最糟糕的情况是你必须搜索整个表格。最好的情况是,你只读了1个街区 因为Gridref是唯一的(假设表中定义了唯一约束),所以一找到结果就会停止搜索。

我也打算在第四季度开始,但我的答案变得非常漫长和令人费解,所以我认为这可能是错误的。

更新: 我针对Blocking factor in a DBMS检查了您对问题2和3的回答 他们似乎不正确。根据这篇文章他们应该是:

    1. FLOOR(1600/120)= 13
    1. 1300/13 = 100

你是如何计算答案的?