Oracle如何处理(选择/在哪里)和加入执行计划

时间:2015-11-16 12:36:20

标签: sql oracle sql-execution-plan

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

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

- Oracle执行计划是否会首先选择table1中满足where子句条件的所有内容,然后加入表格或vise verse或顺序,或者找到最佳路由来节省资源或性能?

1 个答案:

答案 0 :(得分:2)

评论太长了。

Oracle是一个功能强大的数据库,它为这样的查询提供了多种不同的选项。特定类别的算法包括嵌套循环连接,散列连接,合并连接和基于索引的连接。优化器根据数据特征和软件/硬件环境选择最佳执行计划。

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