Oracle物化视图语法2010-05-21 09:58 物化视图对于前台数据库使用者来说如同一个实际的表,具有和一般表相同的如select等操作,而其实际上是一个视图,一个由系统实现定期刷新其数据的视图(具体刷新时间在定义物化视图的时候已有定义),使用物化视图更可以实现视图的所有功能,而物化视图却不是在使用时才读取,大大提高了读取速度,特别适用抽取大数据量表某些信息以及数据链连接表使用,但是物化视图占用数据库磁盘空间。具体语法如下:
create materialized view [view_name]
refresh [fast|complete|force]
[
on [commit|demand] |
start with (start_time) next (next_time)
]
as
{创建物化视图用的查询语句}
具体实例如下:
CREATE MATERIALIZED VIEW an_user_base_file_no_charge
REFRESH COMPLETE START WITH SYSDATE
NEXT TRUNC(SYSDATE+29)+5.5/24 --红色部分表示从指定的时间开始,每隔一段时间(由next指定)就刷新一次
AS
select distinct user_no
from cw_arrearage t
where (t.mon = dbms_tianjin.getLastMonth or
t.mon = add_months(dbms_tianjin.getLastMonth, -1))
删除物化视图:
drop materialized view an_user_base_file_no_charge;
以上是Oracle创建物化视图(Materialized View,以下简称MV)时的常用语法,各参数的含义如下:
1.refresh [fast|complete|force] 视图刷新的方式:
fast: 增量刷新.假设前一次刷新的时间为t1,那么使用fast模式刷新物化视图时,只向视图中添加t1到当前时间段内,主表变化过的数据.为了记录这种变化,建立增量刷新物化视图还需要一个物化视图日志表。create materialized view log on (主表名)。
complete:全部刷新。相当于重新执行一次创建视图的查询语句。
force: 这是默认的数据刷新方式。当可以使用fast模式时,数据刷新将采用fast方式;否则使用complete方式。
2.MV数据刷新的时间:
on demand:在用户需要刷新的时候刷新,这里就要求用户自己动手去刷新数据了(也可以使用job定时刷新)
on commit:当主表中有数据提交的时候,立即刷新MV中的数据;
start ……:从指定的时间开始,每隔一段时间(由next指定)就刷新一次;
手动刷新物化视图:
begin
dbms_mview.refresh(TAB=>'an_user_base_file_no_charge',
METHOD=>'COMPLETE',
PARALLELISM=>8); --PARALLELISM并行控制参数
end;
/
增量刷新就不需要使用什么并行了,通常情况下,是没有那个必要的。
begin
dbms_mview.refresh(TAB=>'an_user_base_file_no_charge',
METHOD=>'FAST',
PARALLELISM=>1);
end;
/
分享到:
相关推荐
物化视图刷新机制是指对物化视图中的数据进行更新的机制。PostgreSQL 提供了两种刷新方式:REFRESH MATERIALIZED VIEW table_name 和 REFRESH MATERIALIZED VIEW CONCURRENTLY table_name。前者会锁住对该物化视图的...
快速刷新是物化视图刷新方式的首选,但不是所有的物化视图都可以进行快速刷新。只有满足某些条件的物化视图才具有快速刷新的能力。根据查询的不同,快速刷新的限制条件也不相同。所有类型的快速刷新物化视图都必须...
这样,通过比较不同物化视图的刷新时间,可以确定哪些日志记录适用于某个特定的物化视图刷新。 2. **判断哪些记录适用于当前物化视图**:当需要刷新某物化视图时,Oracle会检查该物化视图的刷新时间,并通过SNAP...
- `REFRESH` 选项定义了刷新策略,如 `FORCE` 在每次查询时强制刷新,`FAST` 利用物化视图日志进行快速刷新,`COMPLETE` 是完全刷新,`NEVER` 表示不自动刷新。 - `ON COMMIT` 或 `ON DEMAND` 定义了刷新时机,`ON ...
"Oracle 物化视图增量刷新的应用研究" Oracle 物化视图是 Oracle 公司提供的一种新技术,可以解决很多普通逻辑视图无法完成的功能。物化视图操作简单,支持增量刷新及全量刷新,可以支持复杂的表连接、聚合函数等...
`命令将作业队列进程的数量设置为20,这有助于提高物化视图刷新操作的效率。 2. **创建基础表**:首先,需要创建一个基础表,该表将作为物化视图的数据来源。在示例中,创建了一个名为`stu`的表,包含`id`和`name`...
- **刷新与约束**:在刷新过程中,需要注意物化视图所依赖的约束条件。 - **数据可用性和故障恢复**:确保即使在系统故障后也能恢复物化视图的数据。 #### 分区维护操作与物化视图 在进行分区维护操作(如添加或...
输出的脚本可能包括创建物化视图日志(Materialized View Log)的命令,物化视图日志是快速刷新机制的关键组成部分,它们记录源表的变化,以便物化视图能够追踪和更新。 总之,Oracle数据库中的物化视图是一种强大...
在本篇循序渐进的学习笔记中,我们将深入探讨物化视图的概念、用途、刷新机制及其相关问题。 首先,我们需要了解几个关键术语。基表是创建物化视图时引用的原始数据表或视图,而物化视图(MView)则是基于这些基表...
物化视图日志(mlog$_table_name)是物化视图刷新的基础,它记录了对原始表所做的更改,以供刷新时使用。通过查询物化视图日志,可以检查物化视图的更新状态。 除了物化视图的管理,文件还提到了Oracle数据集成工具...
在学习 Oracle 物化视图时,需要了解物化视图的概念、创建和删除物化视图、设置自动刷新时间和日志等知识点。同时,也需要了解物化视图的优点和缺点,以便更好地使用物化视图提高查询性能。 Oracle 物化视图的优点...
2. ON COMMIT物化视图:与ON DEMAND不同,这种类型的物化视图会在基表发生COMMIT操作时立即刷新,确保物化视图的数据总是最新的。创建ON COMMIT物化视图时,需要在创建语句中明确指定这一选项,同时基表必须有主键...
4. 物化视图的日志(Materialized View Logs)是实现物化视图刷新的关键。通过创建物化视图日志,数据库可以跟踪源表上的DML操作,以便在刷新物化视图时使用这些信息。创建物化视图日志的语法类似于: ```sql ...
在完成上述步骤后,就可以在物化视图站点上进行相应的配置,如创建物化视图、定义物化视图刷新策略等。物化视图的刷新可以是即时的,也可以是定时的,这取决于应用的具体需求。 总的来说,Oracle物化视图的配置涉及...
手动更新需要用户触发更新操作,而自动更新则需要数据库管理系统支持物化视图的自动刷新功能。自动刷新通常有立即刷新和增量刷新两种策略,立即刷新会重新执行整个查询,而增量刷新则只更新自上次刷新以来改变的数据...
2. 主键物化视图允许识别物化视图的主表,不影响物化视图的增量刷新可用性。 Rowid 子句: 1. 生成 Rowid 物化视图,基于 Rowid 的物化视图。 2. Rowid 物化视图只有一个单一的主表,不能包括 Distinct 或者聚合...
物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建物化视图创建
ON DEMAND模式意味着物化视图只在需要时(如用户手动触发或定时任务)进行刷新,以保持与基表数据的一致性。而ON COMMIT模式则更积极,一旦基表中的事务提交,物化视图就会立即刷新,确保数据即时更新。 创建一个ON...
- **自动刷新**:Oracle会定期自动刷新物化视图,可以通过调度程序(如`DBMS_SCHEDULER`)来控制刷新频率。 #### 五、物化视图的存储和管理 1. **存储属性**:物化视图作为一种特殊的表,具有自己的物理存储属性,...
- **刷新物化视图**:定期或按需刷新物化视图以保持数据的最新状态。 - **查询物化视图**:通过简单的SELECT语句直接查询物化视图。 - **维护物化视图**:包括监控物化视图的状态、执行维护任务等。 #### 四、物化...