我刚接触oracle和物化视图。我已经为数据创建了一个视图,它在我们的应用程序中产生了一个很大的瓶颈。为了降低虚拟视图的复杂度,将数据划分为反映某些业务领域的各个部分的虚拟视图。即,我想要用于物化视图的主虚拟视图包含从零件虚拟视图连接的数据。
我的问题是,我是否可以从主虚拟视图创建一个物化视图。另外,我希望每次提交时都要更新数据。
create materialized view log on main_view;
create materialized view main_view_mv refresh fast on commit
as select col_1 from main_vie
如果我在Oracle中有定义为每15分钟REFRESH FAST ON COMMIT的物化视图。它在最初创建时就可以正常工作,并且可以很好地刷新。是什么导致它停止快速刷新?
我可以看到它已经停止刷新,基于以下内容:
select mview_name, last_refresh_date from all_mviews;
在Oracle中,什么是仅插入的物化视图?
我有以下物化视图,它使用MAX聚合函数:
CREATE MATERIALIZED VIEW VM_FAST_MAX
REFRESH FAST ON COMMIT
AS
SELECT d.ID_INPUT, MAX(d.ID_LOAD) AS ID_LOAD, COUNT(*) AS CNT
FROM MASTER_TABLE d
GROUP BY d.ID_INPUT;
根据,它应该是一个仅插入的物化视图。
如果物化视图有以下之一,则仅在常规DML插入和直接加载时才支持快速刷新。
使用MIN或MAX聚合的物化视图
具有SU
我们使用在Oracle上运行的基于web的服务。他们严格要求只允许选择ODBC访问。我们所做的一些报告不能很好地说明公司提供的视图,因此我们使用Oracle11g的express版设置了一个db_link,并使用刷新将一些更重要的查询重写为物化视图:指定设置以每小时重新运行查询,这对于我们的目的来说已经足够了。到目前为止一切都很好。
我注意到一些MVs会停止刷新,其背后没有真正的模式。进一步调查,它看起来有时外部数据库(我们通过db_link连接的数据库)不会不时地完成查询,刷新过程耐心地等待事件'SQL*Net more data from dblink‘。
下面是我运行的查询,以获
我想问您是否有解决方案来自动同步表,例如,每一分钟基于在oracle中创建的视图。此视图正在使用另一个表中的数据。我已经创建了一个触发器,但我注意到每当用户更新列或插入行时,数据库中的速度都会很慢。此外,我已经测试了在指定的表(我希望它与视图同步)上创建作业调度,但是我们没有这样做的特权。有没有其他方法可以在表和视图之间保持数据更新?PS :我正在使用toad for oracle V 12.9.0.71
我有这样的结构:
contentView {
navigationView {
foreach {
NavigationLink(ViewA(id: id))
}
}
}
/// where ViewA contains an request trigger when it appears
struct ViewA: View {
@State var filterString: String = ""
var id: String!
@ObservedObject var mo
CREATE MATERIALIZED VIEW LOG ON acquisitions
TABLESPACE users
WITH PRIMARY KEY
INCLUDING NEW VALUES;
我正在尝试在我的主表获取上创建一个物化视图日志。主表与物化视图位于同一个数据库中。我试图满足在刷新.Creating上重现提交的所有条件,mv日志就是其中之一。但我发现了一个错误:
SQL Error: ORA-00439: feature not enabled: Advanced replication
00439. 00000 - "feature not enabled: %s
我创建了以下脚本来获取所有实体化视图的列表,并对每个实体化视图执行刷新。
/* Formatted on 21/03/2018 5:00:01 PM (QP5 v5.114.809.3010) */
DECLARE
NAM VARCHAR2(252);
BEGIN
FOR OUTPUT
IN (SELECT 'dbms_refresh.refresh(''' || name || ''');'
INTO NAM
FROM all_snapshots)
LO
我正在考虑Postgres 9.4中物化视图的问题。有时查询“刷新物化视图xxx”会永远挂起。
我发现的唯一方法是完全重启postgres服务。重新启动后,执行需要几秒钟。
我的视图并不复杂,它使用了大约10个表。
我已经执行了select * from pg_stat_activity where state = 'active',唯一运行的查询是刷新视图。
此问题出现在CentOS操作系统上。
下一次出现这个问题时,我应该看什么?锁?还是别的什么?