You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle中如何查询所有物化视图的刷新频率

Oracle 11g 查询物化视图刷新频率方法

ALL_MVIEWS视图仅存储物化视图基础属性、上次刷新时间等信息,你需要的定时刷新间隔表达式(类似SYSDATE + 1/24)需要从调度任务或刷新组视图中查询,以下是两种可行方案:

方案1:直接查询独立定时刷新的物化视图间隔

适用于单独配置刷新任务的物化视图:

SELECT 
  am.owner 物化视图所属用户,
  am.mview_name 物化视图名称,
  aj.interval 刷新频率表达式,
  aj.next_date 下次预计刷新时间
FROM all_mviews am
LEFT JOIN all_jobs aj 
  ON aj.what LIKE '%DBMS_MVIEW.REFRESH%''' || am.mview_name || '''%' 
  AND aj.schema_user = am.owner
WHERE am.refresh_mode = 'DEMAND'
ORDER BY am.owner, am.mview_name;

返回结果中刷新频率表达式列就是你要的原始配置参数,若该列为空,说明对应物化视图未配置自动定时刷新,仅支持手动触发。

方案2:查询刷新组统一调度的物化视图间隔

如果你的物化视图加入了刷新组统一管理刷新计划,使用以下语句查询:

SELECT 
  ar.owner 刷新组所属用户,
  ar.name 刷新组名称,
  arm.mview_name 组内物化视图名称,
  ar.interval 组统一刷新频率,
  ar.next_date 组下次刷新时间
FROM all_refresh ar
JOIN all_refresh_children arm 
  ON ar.rowner = arm.owner 
  AND ar.rname = arm.refresh_group
ORDER BY ar.owner, ar.name, arm.mview_name;

补充说明

  • 无DBA权限的账号仅能查询自身有权限访问的物化视图,要查询全库所有物化视图,可将语句中视图前缀ALL_替换为DBA_(需对应账号有DBA权限)
  • 若物化视图使用DBMS_SCHEDULER配置刷新任务,需额外查询ALL_SCHEDULER_JOBS视图获取间隔参数

内容的提问来源于stack exchange,提问作者Oscar Jnn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 08:36:06