`

Oracle中建立定时刷新的物化视图

 
阅读更多
物化视图等价于数据的快照,可以使对视图的查询速度提升1个数量级以上,同时还可以在物化视图中建立索引,使查询速度进一步得以优化。

物化视图与数据的同步可设置为on commit和on demand,缺省为on demand。on commit可以在数据发生变化时及时更新数据,但对视图要求太多,包

含非主键join及稍微复杂一些的计算就无法使用,而且日志表配置稍有错误就会导致系统问题,风险颇高。

仅处于对历史数据查询的要求,可以考虑使用任务计划对视图进行完整更新,通过资源消耗换取实现的简易性和系统的稳定性。

建立完全更新的视图需要用户具有connect、resource和create materialized view权限,如果需要激活query rewrite,还需要授予global query

writer权限(或针对涉及的表单独授权)。以dba身份进行授权:

grant connect to test;
grant resource to test;
grant create materialized view to test;
grant global query rewrite to test;


建立测试用的基础表
create table person(id int primary key, name varchar(50), deptid int not null);
create table dept(id int primary key, name varchar(50));
插入测试数据
insert into person (id, name, deptid) values( 1, '用户1', 100);
insert into person (id, name, deptid) values( 1, '用户2', 101);
insert into dept (id, name) values( 100, '测试部门1');
insert into dept (id, name) values( 101, '测试部门2');

建立物化视图
create materialized view test_mview
refresh complete
start with sysdate
next sysdate + 1/1440
as
(
select p.id as pid, p.name as name, d.name as deptname
from person p, dept d
where
d.id = p.deptid
)

这里test_mview为物化视图的名字
refresh complete表示每次都删除掉所有记录重新生成
start with sysdate表示从当前执行时间开始执行数据记录生成
next定义下次执行时间
sysdate+1/1440表示当前执行时间之后1分钟进行下次更新(1440 = 24 x 60)
as 后的部分定义构成视图的sql

最好是自己手动创建以下,然后测试下结果比较实用

oracle在执行完更新后将重新计算当前时间和下次更新时间,因此以上的语法定义了一个每分钟更新一次的视图。

自动刷新是由oracle的任务计划执行,需要确认oracle中job_queue_processes的值大于0,否则将无法激活任务计划。

alter system set job_queue_processes=5;

分享到:
评论

相关推荐

    Oracle物化视图增量刷新的应用研究.pdf

    本文主要研究 Oracle 物化视图增量刷新的应用,揭示了快速刷新技术在实际应用中的重要性。快速刷新采用增量刷新机制,基于日志挖掘原理,所有的刷新动作都是通过基表的物化视图日志来实现。快速刷新可分为自动刷新及...

    Oracle物化视图应用详解

    `DROP MATERIALIZED VIEW`命令用于删除物化视图,而`DBMS_MVIEW.REFRESH`过程则用于手动刷新物化视图。 物化视图与索引有类似之处,都是为了提升查询效率,但物化视图更侧重于计算结果的存储。同时,物化视图对应用...

    oracle物化视图_循序渐进学习笔记

    接着,我们执行DBMS_MVIEW.REFRESH过程来刷新物化视图,使其包含与基表T相同的数据。刷新完成后,物化视图MVT中将包含与表T相同数量的记录,且两者具有相同的结构。 物化视图的刷新是其核心功能之一,分为完整刷新...

    Oracle物化视图使用[文].pdf

    在Oracle数据库中,物化视图有两种刷新策略:ON DEMAND和ON COMMIT。ON DEMAND模式意味着物化视图只在需要时(如用户手动触发或定时任务)进行刷新,以保持与基表数据的一致性。而ON COMMIT模式则更积极,一旦基表中...

    Oracle中物化视图的使用.pdf

    - `ON COMMIT`:在每次对基表的DML操作提交时立即刷新物化视图。 - `ON DEMAND`:根据需要手动触发刷新。 - `ON PROcedURE`:通过指定的存储过程来刷新物化视图。 - `FAST`、`COMPLETE`、`BEGIN`、`FORCE`和`NEVER`...

    物化视图普通视图区别,很不错的资料

    1. ON DEMAND物化视图:这种类型的物化视图只有在用户显式请求刷新时,或者根据预定义的调度(例如通过DBMS_JOB包创建的定时任务)才会更新,以保持与基表数据的一致性。默认情况下,如果在创建物化视图时未指定刷新...

    oracle的物化视图

    `ON DEMAND`意味着物化视图在用户需要时才进行刷新,可以手动或定时通过DBMS_MVIEW.REFRESH等过程触发。`ON COMMIT`则是在对基表的DML操作提交时同步刷新。刷新方法包括`FAST`、`COMPLETE`、`FORCE`和`NEVER`,其中`...

    物化视图的两种实现

    一旦创建,物化视图会立即执行查询并将结果存储在物理表中。当基础数据发生变化时,可以通过手动或自动的方式更新物化视图。手动更新需要用户触发更新操作,而自动更新则需要数据库管理系统支持物化视图的自动刷新...

    ORACLE物化视图的技术应用.pdf

    3. **数据刷新策略**:Oracle提供了多种刷新物化视图的策略,包括快速刷新(fast refresh)、完整刷新(complete refresh)和强制刷新(force refresh)。快速刷新依赖于主表的日志,可以仅更新自上次刷新以来发生...

    基于Oracle物化视图日志的数据同步技术研究.pdf

    3. 数据同步:利用物化视图日志记录的信息,定期或实时地刷新物化视图,将源数据的变化同步到目标数据库。 4. 确保一致性:通过设置触发器或定时任务,确保在源数据发生变化时,物化视图能及时得到刷新,维持数据...

    oracle物化视图配置指导书.doc

    本配置指导书主要针对Oracle高级复制中的物化视图,旨在帮助用户理解并成功配置物化视图,以满足在实际应用中的需求。 首先,配置物化视图之前,需要进行一些基础的准备工作。这包括检查和调整数据库的初始化参数。...

    基于Oracle物化视图的查询性能优化.pdf

    3. 刷新物化视图以保持与源数据的一致性,这可以是自动或手动的。 4. 使用物化视图进行查询,就像查询普通的表一样。 在实际应用中,物化视图可以显著改善那些频繁执行的复杂查询的性能。例如,一个包含多个表连接...

    OCM考试实验笔记之一_物化视图.pdf

    通过创建物化视图日志,数据库可以跟踪源表上的DML操作,以便在刷新物化视图时使用这些信息。创建物化视图日志的语法类似于: ```sql CREATE MATERIALIZED VIEW LOG ON t1 WITH PRIMARY KEY INCLUDING NEW ...

    使用物化视图和exp实现生产库的逻辑实时备份

    本文主要探讨了如何利用Oracle数据库中的物化视图技术和逻辑备份工具`exp`来实现生产库个别表的实时数据刷新与备份。这种方法不仅能够确保数据的安全性,还能满足实时性需求,适用于那些对数据新鲜度有较高要求的...

    使用Oracle物化视图实现数据同步复制的研究与实现.pdf

    同时,配置物化视图的刷新策略,可以是定时刷新或基于触发器的即时刷新。 4. **物化视图的同步**:物化视图的更新可以通过两种方式实现:实时(即物化视图日志)和批量(定时任务)。实时更新能够保证数据的高一致...

    数据仓库,数据挖掘,物化视图

    物化视图的更新可以是即时的(即,当源数据更改时立即更新)或按计划的(定时刷新)。这种技术在大数据环境和实时分析中尤为重要,因为它可以显著降低延迟,提供更快的查询响应时间。 Oracle的数据仓库解决方案还...

    Oracle高级复制数据调研报告

    - Oracle提供了SQL命令来创建、管理和刷新物化视图,如`CREATE MATERIALIZED VIEW`,`REFRESH MATERIALIZED VIEW`等。 - 另外,还可以利用Oracle Data Guard、GoldenGate等工具实现更复杂的数据复制和物化视图管理...

    自己总结的数据库oracle视图用法

    物化视图的刷新可以是手动的,也可以设置为自动定时刷新,以保持数据的实时性。 总的来说,Oracle视图是数据库设计和管理中非常实用的工具,通过合理利用视图,可以提高数据查询的效率,保护数据安全,并简化应用...

Global site tag (gtag.js) - Google Analytics