如果我有这样一个简单的查询:
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或顺序,或者找到最佳路由来节省资源或性能?
答案 0 :(得分:2)
评论太长了。
Oracle是一个功能强大的数据库,它为这样的查询提供了多种不同的选项。特定类别的算法包括嵌套循环连接,散列连接,合并连接和基于索引的连接。优化器根据数据特征和软件/硬件环境选择最佳执行计划。
如果您有大型表并且col2 > 0
具有相当的选择性且table1(col2)
上有索引,那么Oracle可能会首先使用该索引进行过滤,然后执行连接。