获取物化视图状态,未知状态

Posted

技术标签:

【中文标题】获取物化视图状态,未知状态【英文标题】:get materialized view state, unknown state 【发布时间】:2021-12-01 04:31:15 【问题描述】:

朋友们早安,

我如何知道物化视图是否已正确更新。

我在视图中使用的刷新方法是:完整、快速和强制。

我目前正在使用视图的状态来确定它是否正确更新,但这给我带来了问题。

代码:

 SELECT OWNER,MVIEW_NAME,AFTER_FAST_REFRESH, STALENESS, COMPILE_STATE FROM DBA_MVIEWS 

在我看来,它需要编译或未知状态(列:COMPILE_STATE),我正在调查,它可能显示为未知的原因有多种,我还有什么其他方法来获取视图的更新状态或者我能做什么?

我将不胜感激。

谢谢你, 问候。

【问题讨论】:

“但它给我带来了问题” - 什么问题? STALENESS 应该是“FRESH”和 COMPILE_STATE="VALID" 这些是当前的状态。 1) STALENESS =NEEDS_COMPLILE, COMPILE_STATE=NEEDS_COMPLILE 2) STALENESS =UNDEFINED, COMPILE_STATE=VALID 【参考方案1】:

你也可以使用DBA_MVIEW_REFRESH_TIMES:https://docs.oracle.com/en/database/oracle/oracle-database/19/refrn/DBA_MVIEW_REFRESH_TIMES.html

DBA_MVIEW_REFRESH_TIMES 描述了数据库中所有物化视图的刷新时间。

和DBA_REGISTERED_MVIEWS

DBA_REGISTERED_MVIEWS 描述了数据库中所有已注册的实体化视图(在主站点或主实体化视图站点注册)。它的列与 ALL_REGISTERED_MVIEWS 中的列相同。

【讨论】:

以上是关于获取物化视图状态,未知状态的主要内容,如果未能解决你的问题,请参考以下文章

物化视图在NEEDS_COMPILE状态下刷新

Postgres:更新与物化视图连接的表?错误:视图无法在物化视图中锁定行

计算结果的物化视图

从物化视图中获取列类型

获取物化视图定义语句的SQL

PG 物化视图