哪个查询具有更好的性能?

时间:2018-12-05 10:23:03

标签: sql oracle oracle11g query-performance

SELECT *
FROM { SELECT * FROM BigMillionTable UNION ALL SELECT * FROM SmallTensTable } 
WHERE (some_condition)

VS

SELECT * 
FROM BigMillionTable 
WHERE (some_condition)

UNION ALL

SELECT * 
FROM SmallTensTable
WHERE (some_condition) 

我的问题:

  1. 第一个查询是否需要将所有行放入 主存储器中的BigMillionTable执行UNION ALL吗?
  2. 哪个查询提供更好的性能?

1 个答案:

答案 0 :(得分:1)

where条件实际上是在选择之前执行的,因此在第二个查询中,您只对较小的集合进行所有并集,因此应该更快。

在第一个查询中,将首先运行内部查询,该查询将对整个表进行所有并集,然后在选择记录之前在何处执行

是的,第二个将比第一个提供更好的性能

相关问题