📜  关系查询评估|套装2

📅  最后修改于: 2021-08-27 06:58:12             🧑  作者: Mango

先决条件–关系查询评估|套装1
数据存储在磁盘中。然后使用读取和写入方法来操作磁盘。更多的操作次数,更少的磁盘失败次数。为了克服这个问题并延长磁盘寿命,我们希望通过确保我们最小化使用磁盘的读写操作这一事实来优化所使用的磁盘。

  1. 投影操作–
    此操作涉及从记录中选择属性。该操作是昂贵的。为了进行投影操作,需要扫描文件中的每个记录以制定结果记录。需要使用基于排序或散列的函数消除结果记录中的重复记录。如果使用投影操作,则必须进行整个文件扫描。一种成本友好的方法将涉及仅在选择操作之后才使用投影操作。这是因为完成选择后记录会减少,然后进行投影操作会涉及较少的成本,较少的读写操作和更长的磁盘寿命。
  2. 排序–
    排序是非常普遍应用的操作。它用于删除重复的元素,记录分组,联接等。外部排序涉及磁盘上存在的巨大文件。我们可以按记录的升序或降序排列文件。我们对这些操作使用合并排序。合并排序涉及两个阶段,即排序阶段和合并阶段。在创建子文件时,使用排序阶段是很普遍的。这些排序的子文件也称为运行。合并阶段以合并子文件以最终创建一个排序文件而闻名。

假设 :
假设数据非常庞大,并且存储在n个块中,并且内存(m个块)比数据小得多。接下来要涉及的步骤是读取m个块,将其在内存中排序,然后以称为run的单个文件的形式写入磁盘。
这些步骤应重复进行–

(n / m) number of times 

只要值不是整数,就取最大值。

复杂度:

(2*n) times block access

我们可以说已经创建了“ r”个子文件,每个子文件都已排序。缓冲区空间只有m个块,我们一次只能对m个块进行操作。然后,将操作过的零件移至内存并在下一个块上进行操作(一次最多m个块)。