【发布时间】:2018-07-08 08:41:46
【问题描述】:
我有 3 个结构完全相同的表
table1 包含今天的数据,table2 包含本周的数据,table3 包含过去的其余数据,并且行按 id 排序
我想根据某些“位置”条件从这些表中检索最后 500 行。
对于性能问题,如果 table1 有 500 行满足这些条件,则无需查找其他表。如果我们在 table1 和 table2 上找到 500 也是一样的:不需要在 BIG 表 table3 上查找。
我的目标是尽可能不碰大桌子 table3(和 table2)
我的问题是,如果我执行 UnionAll,并且如果表 1 已经包含我需要的 500 行,那么 Oracle 是否会在表 3 和表 2 上搜索并浪费一些时间(行是按顺序排列的)?或者通过UnionAll Oracle concat所有表然后检查满足条件的内容然后取前500行,还是有另一种选择?
【问题讨论】:
标签: oracle