📜  表达式求值

📅  最后修改于: 2020-12-12 08:11:32             🧑  作者: Mango

表达评估

在前面的部分中,我们了解了查询处理中的各种概念。我们了解了查询处理步骤,选择操作以及用于执行联接操作及其成本估算的几种算法。

我们已经知道计算和表示给定用户查询或表达式的各个关系操作。在这里,我们将了解如何使用多个操作来计算和评估表达式。

为了评估其中包含多个运算的表达式,我们可以一个一个地执行每个运算的计算。但是,在查询处理系统中,我们使用两种方法来评估带有多个操作的表达式。这些方法是:

  • 物化
  • 流水线

让我们简要讨论这些方法。

物化

在这种方法中,给定的表达式一次评估一个关系运算。同样,将以适当的顺序或顺序评估每个操作。在评估所有操作之后,将以临时关系实现输出,以供后续使用。这导致物化方法的缺点。缺点是它需要构造那些临时关系来分别实现所评估操作的结果。除非它们很小,否则将这些临时关系写在磁盘上。

流水线

管道化是实现方法的替代方法或方法。在流水线中,它使我们能够在流水线中同时评估表达式的每个关系运算。在这种方法中,在评估一个操作之后,其输出将传递到下一个操作,并且链将一直持续到对所有关系操作进行彻底评估为止。因此,不需要在流水线中存储临时关系。与在实现方法中使用的方法相比,流水线的这种优势使其成为更好的方法。甚至两种方法的成本之间也可能存在后续差异。但是,这两种方法在不同情况下发挥最佳作用。因此,这两种方法在它们的位置都是可行的。

在下一节中,我们将对实现和流水线化方法进行深入描述和讨论。