Oracle 如何处理 (select/where) 和一个连接执行计划

How Oracle handles (select/where) and a join execution plan

如果我有这样一个简单的查询:

SELECT table1.col3, table2.col3 FROM table1 LEFT OUTER JOIN table2
ON table1.col1 = table2.col1
WHERE table1.col2>0;

-Oracle 执行计划 select table1 中首先满足 where 子句条件然后连接表或 vise verse 或顺序的所有内容,或者它会找到可以节省资源或性能的最佳路径 -明智的?

Oracle 是一个功能强大的数据库,它有多种不同的查询选项可供选择。具体 类 算法包括嵌套循环连接、散列连接、合并连接和基于索引的连接。优化器根据数据和software/hardware环境的特点选择最佳执行计划。

如果您有大表并且 col2 > 0 相当有选择性并且在 table1(col2) 上有一个索引,那么 Oracle 可能会先使用该索引进行过滤,然后再执行连接。