高并发情况下如何处理物化视图刷新?

问题描述 投票:0回答:1

我们每 3 小时左右刷新一次物化视图。查询不太复杂,视图本身可以在 2 分钟内创建。

但是,由于它是一个经常使用的视图,在高峰时段,不断的查询和同时刷新可能会导致视图刷新20-30-40分钟,影响整个数据库。

这个问题如何解决?

我的一个想法是创建第二个物化视图,为其分配一个同义词,然后删除第一个,而不是刷新。但删除可能会反编译各种依赖对象。

还有其他选择吗?

oracle
1个回答
0
投票

查看使用 OUT_OF_PLACE 刷新选项,该选项实际上会自动执行您提议的策略。

我们创建一个新版本的 mview(同时保留旧版本以供查询),然后一旦刷新处理完成,数据字典就会翻转以指向新刷新的段。

针对旧段运行的查询通常会针对旧段运行完成,不会出现错误。

© www.soinside.com 2019 - 2024. All rights reserved.