oracle 的几个概念问题? 实体化视图(Materialized View)即快照(Snapshot),也称物化视图 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 它们是一回事!,同一个概念,不同的称呼而已实体化视图(Materialized View)即快照(Snapshot),也称物化视图,存放于本地。实体化视图常用来存放预计算的合计数据,如汇总和平均。实体化视图也可以是主表的一个完整副本。实体化视图往往定义成只读。通常情况下,实体化视图并不随着主表的更新而刷新。对于那些实时性不强而又要经济查询的信息来说,实体化视图可以是一个为其它远程节点提供信息的最好的方法。实体化视图在应用中有如下优缺点: 优点:1、改进了性能,加快了查询速度。实体化视图是一个本地 对象,用户在查询数据时,避免了网络开销。 2、提高了数据的可靠性和安全性。如果主表数据丢失,并 不影响实体化视图的数据查询。在实体化视图没有刷新 之前,且该视图是主表的一个完整副本(在建立实体化视 图时执行了Select * From TableName),那么,该视图实 际上保留了主表数据最近的一个备份。 3、实体化视图可以被自动定时刷新。缺点:1、实体化视图查询的信息不是实时信息。 2、实体化视图占用本地物理存储空间。实体化视图的建立。建立实体化视图用 CREATE MATERIALIZED VIEW 或 CREATESNAPSHOT 语句。为了在自己的模式中建立实体化视图,用户必须具有CREATE MATERILIZED VIEW、CREATE SNAPSHOT、CREATETABLE、CREATE INDEX、CREATE VIEW系统权限。建立实体化视图的语句(此处只列出常用选项): CREATE MATERILIZED VIEW [SCHEMA.] 实体化视图名 [TABLESPACE] [STORAGE] [REFRESH [FAST|FORCE|COMPLETE]] [START WITH 日期] [NEXT 日期] [FOR UPDATE] AS 子查询An Example of Creating Materialized View: Create Materialized View BBRefresh CompleteStart With Sysdate+10/24 Next Trunc(Sysdate,’Day’)+10/24 As Select Sum(Score) Total From AA Group By Class; 说明:该语句建立了一个实体化视图BB,其源数据从表AA获得。它的刷新模式为完全刷新(Complete),第一次刷新时间为第二天上午10点,以后在每星期一的上午10点进行完全刷新。实体化视图的刷新。1、 自动刷新,如上例所示,在某个特定的时间自动更改本地实体化视图的内容。2、 手工刷新,使用DBMS_REFRESH 存储过程来完成。 EXEC DBMS_REFRESH.REFRESH(‘BB’); 注:BB为实体化视图名。3、 刷新的三种方式:快速刷新(Fast)、完全刷新(Complete)、快速/完全刷新(Force)。实体化视图的删除。用DROP SNAPSHOT 或 DROP MATERIALIZED VIEW 命令。实体化视图的修改。实体化视图的修改主要是指改变其存储特性和自动刷新方式及其刷新时间。 例:ALTER SNAPSHOT 实体化视图名REFRESH FORCE; 或 ALTER MATERIALIZED VIEW 实体化视图名REFRESH FORCE;实体化视图记录的修改。实体化视图记录能否被修改,要看在实体化视图建立时,有没有用FOR UPDATE 选项。实体化视图记录的更改、删除和增加并不影响主表的记录。当实体化视图的记录被更改或删除后,可通过刷新操作(自动或手工)来重新获得主表的数据实体化视图日志。实体化视图日志也就是快照日志。Oracle把对实体化视图主表的修改存储在日志上,并用该日志刷新实体化视图。用日志刷新实体化视图的刷新成为快速刷新,若没有日志,则不能用FAST方式来刷新实体化视图。CREATE SNAPSHOT LOG ON AA; 建立实体化视图日志DROP SNAPSHOT LOG ON AA; 删除实体化视图日志 请教实现这样的功能的其他SQL写法(效率高点更好) Oracle 数据库恢复 求海量更新方案 [求助]TOAD工具的问题!!! shared_pool_size 修改,请教各位大侠 oracle10g emca删除em资料库遇到的问题 pl/sql多个cursor如何合并 查询问题 导入时出现如下错误,请帮忙。(数据量在2G以上) 关于IMP导入数据库的问题! 求救:在线等待!imp报错:ora-00959表空间不存在! 当DROP过程和表时ORACLE老是死!!(大家帮忙阿)
存放于本地。实体化视图常用来存放预计算的合计数据,如汇总和平
均。实体化视图也可以是主表的一个完整副本。实体化视图往往定义
成只读。通常情况下,实体化视图并不随着主表的更新而刷新。对于
那些实时性不强而又要经济查询的信息来说,实体化视图可以是一个
为其它远程节点提供信息的最好的方法。
实体化视图在应用中有如下优缺点:
优点:1、改进了性能,加快了查询速度。实体化视图是一个本地
对象,用户在查询数据时,避免了网络开销。
2、提高了数据的可靠性和安全性。如果主表数据丢失,并
不影响实体化视图的数据查询。在实体化视图没有刷新
之前,且该视图是主表的一个完整副本(在建立实体化视
图时执行了Select * From TableName),那么,该视图实
际上保留了主表数据最近的一个备份。
3、实体化视图可以被自动定时刷新。
缺点:1、实体化视图查询的信息不是实时信息。
2、实体化视图占用本地物理存储空间。
实体化视图的建立。
建立实体化视图用 CREATE MATERIALIZED VIEW 或 CREATE
SNAPSHOT 语句。为了在自己的模式中建立实体化视图,用户必须具
有CREATE MATERILIZED VIEW、CREATE SNAPSHOT、CREATE
TABLE、CREATE INDEX、CREATE VIEW系统权限。
建立实体化视图的语句(此处只列出常用选项):
CREATE MATERILIZED VIEW [SCHEMA.] 实体化视图名
[TABLESPACE] [STORAGE]
[REFRESH [FAST|FORCE|COMPLETE]]
[START WITH 日期] [NEXT 日期]
[FOR UPDATE]
AS 子查询
An Example of Creating Materialized View:
Create Materialized View BB
Refresh Complete
Start With Sysdate+10/24 Next Trunc(Sysdate,’Day’)+10/24
As Select Sum(Score) Total From AA Group By Class;
说明:该语句建立了一个实体化视图BB,其源数据从表AA获
得。它的刷新模式为完全刷新(Complete),第一次刷新时间为第二
天上午10点,以后在每星期一的上午10点进行完全刷新。
实体化视图的刷新。
1、 自动刷新,如上例所示,在某个特定的时间自动更改本地实体化视图的内容。
2、 手工刷新,使用DBMS_REFRESH 存储过程来完成。
EXEC DBMS_REFRESH.REFRESH(‘BB’);
注:BB为实体化视图名。
3、 刷新的三种方式:快速刷新(Fast)、完全刷新(Complete)、
快速/完全刷新(Force)。
实体化视图的删除。
用DROP SNAPSHOT 或 DROP MATERIALIZED VIEW 命令。
实体化视图的修改。
实体化视图的修改主要是指改变其存储特性和自动刷新方式及其
刷新时间。
例:ALTER SNAPSHOT 实体化视图名
REFRESH FORCE;
或 ALTER MATERIALIZED VIEW 实体化视图名
REFRESH FORCE;
实体化视图记录的修改。
实体化视图记录能否被修改,要看在实体化视图建立时,有没有用
FOR UPDATE 选项。
实体化视图记录的更改、删除和增加并不影响主表的记录。当实体
化视图的记录被更改或删除后,可通过刷新操作(自动或手工)来重新获
得主表的数据
实体化视图日志。
实体化视图日志也就是快照日志。Oracle把对实体化视图主表的修
改存储在日志上,并用该日志刷新实体化视图。用日志刷新实体化视图
的刷新成为快速刷新,若没有日志,则不能用FAST方式来刷新实体化
视图。
CREATE SNAPSHOT LOG ON AA; 建立实体化视图日志
DROP SNAPSHOT LOG ON AA; 删除实体化视图日志