【发布时间】:2013-09-11 15:50:55
【问题描述】:
我在生产环境中面临一个主要问题,我引入了带有视图日志的物化视图,以便在提交到主表时刷新。我用 sql developer 对此进行了测试,效果很好。
但是,当使用我使用 iBatis 提交到表的应用程序更新基础表时,物化视图不会使用新值更新。
谁能告诉我这里可能是什么问题?
感谢您在这方面的帮助
【问题讨论】:
-
首先看Determining the Fast Refresh Capabilities of a Materialized View。这表明有哪些类型的快速刷新可用。然后找到两个上下文使用的确切 SQL 语句,比较它们并查看它们的差异是否与 MV_CAPABILITIES_TABLE 中的任何 POSSIBLE = 'N' 行有关。这是一个疯狂的猜测:在 SQL Developer 中,您使用的是单个
INSERT语句,但 iBatis 使用的是INSERT和UPDATE的组合。 REFRESH_FAST_AFTER_INSERT = Y,但 REFRESH_FAST_AFTER_ANY_DML = N。 -
@jonearles 谢谢你的建议。我相信你在这种情况下可能是正确的。让我在你提出的道路上对此进行调查。我还想知道一件事。完全刷新会减慢速度吗?我只是想知道,因为如果无法快速刷新,那么完全刷新的唯一可能性不是吗?
-
是的,完全刷新会比增量刷新慢。只有这两种可能性。
-
嗨@jonearles。你是对的。您能否发表您的评论作为答案,我会接受。再次感谢您,抱歉更新晚了。
标签: sql oracle plsql materialized-views