Oracle数据库常用操作命令(4)

DML语句是指用于修改数据的insertdeleteupdate语句。因为视图是一个虚拟的表,所以这些语句也可以与视图一同使用。一般情况下不通过视图修改数据,而是直接修改基表,因为这样条例更清晰。在视图上使用DML语句有如下限制(相对于表)。

1)DML语句只能修改视图中的一个基表。

2)如果过记录的修改违反了基表的约束条件,则将无法更新视图。

3)如果创建的视图包含连接运算符,DISTINCT运算符、集合运算符、聚合函数和groupby子句,则将无法更新视图。

4)如果创建的视图包含伪列表达式,则将无法更新视图。

简单视图基于单个基表,不包括函数和分组函数,那么可以在此视图中进行insert、update、delete操作,这些操作实际上在基表中插入、更新和删除行

复杂视图从多个表提取数据,包括函数分组函数。复杂视图不一定能进行DML操作。

4.查询视图

select    view_name   from    user_views;

5.删除视图

drop  view   view_name;

6.物化视图

含义:

就是具有物理存储的特殊视图,占据物理空间,就像表一样

是远程数据的本地副本,或者用来生成基于数据表求和的汇总表

Oracle数据库常用操作命令

物化视图中两个重要概念:查询重写和物化视图同步

(1)查询重写:对sql语句进行重写,当用户使用sql语句对基表进行查询时,如果已经建立了基于这些表的物化视图,oracle将自动计算和使用物化视图来完成查询,在某些情况下可以节约查询时间,减少系统i/o。Oracle将这种查询优化技术成为查询重写。参数QUERY_REWRITE_ENABLED决定是否使用重写查询,该参数为布尔型。在创建物化视图需要用ENABLE_QUERY REWRITE来启动查询重写功能。通过SHOW指令可以查看该参数的值

(2)物化视图的同步:

物化视图是基于表创建的,所以当基表变化时,需要同步数据以更新物化视图中的数据,这样保持物化视图中的数据和基表的数据一致性。Oracle提供了两种物化视图的刷新方式,决定何时进行刷新,即ON COMMIT方式和ON DEMAND方式。

ON COMMIT方式:指物化视图在对基表的DML操作事务提交的同时进行刷新。

ON DEMAND方式:指物化视图在用户需要的时候进行更新,可以手工通过DBMS_MVIEW.REFRESH等方式来进行刷新,也可以通过JOB定时进行刷新。

选择刷新方式之后,还需要选择一种刷新类型,刷新类型指定刷新时基表与物化视图如何实现数据的同步,oracle提供了以下4种刷新类型。

COMPLETE:对整个物化视图进行完全的刷新。

FAST:采用增量刷新,只刷新自上次刷新后进行的修改。

FORCE:oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE方式。

NEVER:物化视图不进行任何刷新。

默认值是FORCE刷新类型。

创建物化视图

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8d67ee994b4dd7a410beb5012c277738.html