使用缓存或临时表优化具有多个union all的查询



我需要在一个查询中查询Oracle数据库中的多个表,以获得一个typeahead函数,这意味着我需要查询主页上的每个按键。

select * from 
(select * from table1
union all
select * from table2
union all
select * from table3
union all
select * from table4
) 
where colume_name like '%xxx%'

所有的联合将产生一个约300000条记录的数据集。

无论如何,这个查询是否可以进行优化,以便Oracle以某种方式将统一的数据集保存在缓存或临时表中,以便用于下一次按键?

正如您所说,您可以使用on commit preserve rows选项创建一个(全局(临时表,将结果存储在其中,并在该会话期间使用数据。

最新更新