-1

我正在学习查询优化。一般来说,在 JOIN 之前应用 PROJECT 和 SELECT 会给你更好的性能。我的问题是:

在应用JOIN操作之前应用SELECT操作或应用JOIN操作之前应用PROJECT操作是否会更好?

感谢您的任何回复。

4

1 回答 1

1

“下推选择”是可以减少需要完成的 I/O 数量的基本优化策略之一。

例如,一个包含 sargable 谓词的选择,如果推到 join 下,将通过减少外部关系中的元组数量来有效减少 I/O 的数量(嵌套循环连接需要 |R|+|R|*|Q| I/O)。

下推选择的主要缺点是无法使用原始关系上的现有索引的情况。是否推送的决定与连接方法的选择一起完成。

同样,如果投影保留了连接所需的属性,您可以“下推”投影。

于 2013-02-23T17:57:30.163 回答