oracle物化视图9点刷新失效,什么会导致Oracle 10g中的物化视图停止快速刷新?(What can cause a materialized view in Oracle 10g to st...

什么会导致Oracle 10g中的物化视图停止快速刷新?(What can cause a materialized view in Oracle 10g to stop fast refreshing?)

如果我在Oracle中实现了每15分钟定义为REFRESH FAST ON COMMIT化视图。 它在最初创建和快速刷新时起作用。 什么会导致它停止快速刷新?

我可以看到它已停止刷新基于此:

select mview_name, last_refresh_date from all_mviews;

If I have materialized view in Oracle which is defined as REFRESH FAST ON COMMIT every 15 minutes. It works when initially created and refreshes happily. What can cause it to stop fast refreshing?

I can see that it has stopped refreshing based on this:

select mview_name, last_refresh_date from all_mviews;

原文:https://stackoverflow.com/questions/1392242

更新时间:2019-12-08 06:51

最满意答案

我们发现的事情似乎阻止了MV的刷新:1.对基表的DDL进行更改2.如果MV跨越数据库链接,则通过链接获取数据时出现问题(例如,我们有一个数据库这里和一个远程如果在刷新期间两个数据库之间的连接失败,则刷新失败)

在#1的情况下,刷新失败并且再也不能再次运行,我们必须重新创建MV。 在#2的情况下,它不清楚刷新是否会再次增加。 快速刷新MV对我们来说已证明是不可靠的,因此我们在Windows调度程序中创建了一项工作来启动刷新。

Things we've found seem to stop an MV from refreshing: 1. a change to the base table's DDL 2. if the MV is across a DB link, a problem with getting the data across the link (for example, we had a database here, and one remote. If during a refresh, the connection between the two databases failed, then the refresh failed)

In the case of #1, the refresh fails and never ever works again and we have to recreate the MV. In the case of #2, its been unclear if the refresh will ever pick up again. Fast refresh MVs have proved to be unreliable for us so we've created a job in Windows scheduler to initiate our refreshes.

2009-09-08

相关问答

首先,从Oracle数据库数据仓库指南开始 : 使用仅连接的物化视图上的快速刷新限制 ... FROM列表中所有表的RowID必须出现在查询的SELECT列表中。 这意味着你的陈述将需要看起来像这样: CREATE MATERIALIZED VIEW MV_Test

NOLOGGING

CACHE

BUILD IMMEDIATE

REFRESH FAST ON COMMIT

AS

SELECT V.*, P.*, V.ROWID as V_ROWID, P.ROWI

...

您的XMLType(可能)存储为CLOB。 使用如下查询查找隐藏列: select * from user_tab_cols where table_name = 'XML_DOCUMENTS';

然后创建一个函数将CLOB转换为XMLType,并提取该值。 请注意,“确定性”关键字是必要的,但我不确定为什么。 在SQL和PL / SQL之间来回传递数据会很慢,但如果你使用物化视图,事情可能已经很慢了。 create or replace function extract_from_clob(p

...

SQL> create table a(id number);

Table created.

SQL> alter table a rename column id to new_id;

Table altered.

SQL> desc a

Name Null? Type

----------------------------------------- -------- -----------

NEW_

...

根据我的调查,为了使用聚合函数和快速刷新方法创建MV,你的MV和MV日志应该有特殊的结构,以便在脚本下面看到正确的MV和MV日志结构: begin

dbms_advisor.tune_mview(task_name=>:t,

mv_create_stmt=>'create materialized view mv1 refresh fast

as select job,sum(sal) from emp group by job');

end;

然后执行以下查询以查看MV和MV日志的

...

我们发现的事情似乎阻止了MV的刷新:1.对基表的DDL进行更改2.如果MV跨越数据库链接,则通过链接获取数据时出现问题(例如,我们有一个数据库这里和一个远程如果在刷新期间两个数据库之间的连接失败,则刷新失败) 在#1的情况下,刷新失败并且再也不能再次运行,我们必须重新创建MV。 在#2的情况下,它不清楚刷新是否会再次增加。 快速刷新MV对我们来说已证明是不可靠的,因此我们在Windows调度程序中创建了一项工作来启动刷新。 Things we've found seem to stop an MV

...

根据文档,Oracle审计可以告诉您一次配置。 配置完成后,通过“AUDIT SELECT ON {实体化视图的名称}”启用它。 审计跟踪将位于SYS模式的AUD $表中。 Oracle auditing can tell you this once configured as per the docs. Once configured, enable it by "AUDIT SELECT ON {name of materialized view}". The audit trail will

...

您提供的缺失链接的要求: 必须指定COUNT(*)。 SELECT列表必须包含所有GROUP BY列。 此外,以下要求表明,对于您的查询,只有在table_sample更新后才能进行快速刷新,但tableA没有: 只有外部表被修改后,具有外部连接的物化聚合视图才能在传统DML和直接加载后快速刷新。 此外,内部联接表的连接列上必须存在唯一约束。 如果存在外连接,则所有连接必须通过AND连接,并且必须使用equality(=)运算符。 最后,在询问物化视图时,最好准确说明您创建的物化视图日志。 Req

...

看看快速刷新的一般限制 物化视图的定义查询限制如下: 物化视图不得包含对非重复表达式(如SYSDATE和ROWNUM)的引用。 物化视图不得包含对RAW或LONG RAW数据类型的引用。 它不能包含SELECT列表子查询。 它不能在SELECT子句中包含分析函数(例如,RANK)。 它不能包含MODEL子句。 它不能包含带子查询的HAVING子句。 它不能包含具有ANY,ALL或NOT EXISTS的嵌套查询。 它不能包含[START WITH ...] CONNECT BY子句。 它不能在不同站

...

根据My Oracle Support - 我发现了Bug 8856349:OUTER join物化视图的快速刷新不起作用 错误在11.2.0.1中确认,在11.2.0.2基本版本中修复。 MOS注释说解决方法是: 设置参数“_mv_refresh_pkfk_relationship_opt”= false。 您可以通过以下方式更改此参数: alter system set "_mv_refresh_pkfk_relationship_opt"=false scope=both;

但是,由于这是

...

更改刷新设置的文档说: 此子句仅设置默认刷新选项。 有关实际实现刷新的说明,请参阅Oracle Database Advanced Replication和Oracle Database Data Warehousing Guide。 因此,您的alter materialized view语句本身不会刷新。 它只是等待当前排除的刷新完成才能更新该视图的数据字典。 一旦当前刷新完成(或终止), alter将完成并阻止进一步自动刷新。 The documentation for altering t

...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值