有没有办法安排Oracle运行查询并将数据保存到表中?
或者我是否有办法安排执行Oracle查询以便一次运行并将数据保存到表中?
我有一个自动报告页面,由于在很长一段时间内执行繁重的逻辑(包括2年的数据+逻辑计算)而导致性能问题。如果客户点击报告页面,他们会抱怨加载时间过长;通过这种将数据转储到当前时间的表可以解决我的问题。
答案 0 :(得分:5)
您可以创建物化视图
CREATE MATERIALIZED VIEW mv_name
REFRESH COMPLETE
START WITH sysdate
NEXT sysdate + interval '1' hour
AS
<<your query here>>
这将创建一个物化视图,每小时刷新一次。物化视图将数据存储在一个名为MV_NAME
的表段中,您可以像查询任何其他表一样进行查询。
根据查询,您可以通过在基表上创建适当的物化视图日志来执行增量刷新而不是完全刷新。