kau*_*nav 5 sql oracle oracle11g query-performance
SELECT *
FROM { SELECT * FROM BigMillionTable UNION ALL SELECT * FROM SmallTensTable }
WHERE (some_condition)
Run Code Online (Sandbox Code Playgroud)
VS
SELECT *
FROM BigMillionTable
WHERE (some_condition)
UNION ALL
SELECT *
FROM SmallTensTable
WHERE (some_condition)
Run Code Online (Sandbox Code Playgroud)
我的问题:
BigMillionTable
主内存中才能执行UNION ALL
?where 条件实际上是在选择之前执行的,因此在第二个查询中,您仅在较小的集合上执行并集,因此应该更快。
在第一个查询中,内部查询将首先运行,它将对整个表进行并集,然后在选择记录之前执行 where 。
所以是的,与第一个相比,第二个会提供更好的性能