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

时间:2018-07-16 07:23:18

标签: oracle

我需要通过一次查询来查询Oracle数据库中的许多表,以实现预输入功能,这意味着我需要查询首页上的每个按键。

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以某种方式将统一的数据集保留在可用于下一次按键的高速缓存或临时表中?

1 个答案:

答案 0 :(得分:0)

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