查询计划评估

通过对诸如磁盘 I/O 和 CPU 成本之类的因素进行分析,优化器可对所有的查询计划进行评估。

优化器可使用由下至上、逐步缩小范围的搜索策略同时构造所有可行计划。也就是说,优化器首先构造所有可能的连接对。它会排除成本更高的任何冗余对。(冗余对是一种连接对,其中包含与另一连接对相同的表并生成与另一连接对相同的行集合。)

例如:如果两个连接都未通过使用 SELECT 语句的 ORDER BY 或 GROUP BY 子句指定经排序的行集合,那么连接对 (A x B) 相对于 (B x A) 就是冗余的。

如果查询使用附加的表,那么优化器将把每个余下的对连接到一个新表以形成所有可能的连接三元组,因而排除每个要连接的附加表的冗余三元组中成本较高的等等。当已生成一个可能的连接组合的非冗余集合时,优化器将选择执行成本看起来最低的计划。