a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 264|回复: 0

[考试辅导] oracle认证应用技术学习资料汇总8

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
简单的oracle物化视图 0 X, l7 t. J3 U& e6 \, n
 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。 % ^: K* H1 ]4 u2 `  X7 h
  9 p" T8 n" C( j- u6 s4 \2 n) e' Z5 c3 t( z
  1、物化视图的类型:ON DEMAND、ON COMMIT
5 ?% M) t; v5 B/ ?+ A# P* V9 [, l' N二者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。
, P/ c, h5 f# ^+ p! a  3 c5 w# o  L  {7 H
  2、ON DEMAND物化视图 1 R  L% H: s. Z
物化视图的创建本身是很复杂和需要优化参数设置的,特别是针对大型生产数据库系统而言。但Oracle允许以这种最简单的,类似于普通视图的方式来做,所以不可避免的会涉及到默认值问题。也就是说Oracle给物化视图的重要定义参数的默认值处理是我们需要特别注意的。
$ K+ I& h% C" S; y% M7 b  
7 l( M$ \# n# x# r: g! F$ ?0 X  物化视图的特点:
; e: Z5 k8 H9 z3 B+ ~  (1) 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到佐证;(2) 物化视图也是一种段(segment),所以其有自己的物理存储属性;(3) 物化视图会占用数据库磁盘空间,这点从user_segment的查询结果,可以得到佐证; $ `! q9 L& C7 n4 b# J' C1 W+ y
  
) F7 A+ }* Y3 }# \$ T创建语句:create materialized view mv_name as select * from table_name # W, b$ h7 a  p3 h" t
  
! V- f4 e* z% \6 s' P. o) ~  默认情况下,如果没指定刷新方法和刷新模式,则Oracle默认为FORCE和DEMAND。
, `1 g( S- t3 U& r# K5 w  物化视图的数据怎么随着基表而更新?  
3 z& j  ?9 b$ h8 e, ]& T2 |Oracle提供了两种方式,手工刷新和自动刷新,默认为手工刷新。也就是说,通过我们手工的执行某个Oracle提供的系统级存储过程或包,来保证物化视图与基表数据一致性。这是最基本的刷新办法了。自动刷新,其实也就是Oracle会建立一个job,通过这个job来调用相同的存储过程或包,加以实现。 ) I2 @, A/ ]7 T% Y$ r
  
$ q  r8 a1 Y  ^( f; LON DEMAND物化视图的特性及其和ON COMMIT物化视图的区别,即前者不刷新(手工或自动)就不更新物化视图,而后者不刷新也会更新物化视图,——只要基表发生了COMMIT。 / u+ r9 c' P  V+ X
  1 O) ^4 S- w5 W) u
  3、ON COMMIT物化视图 : I" o: g* o0 c8 d3 k
  ON COMMIT物化视图的创建,和上面创建ON DEMAND的物化视图区别不大。因为ON DEMAND是默认的,所以ON COMMIT物化视图,需要再增加个参数即可。
! k# Z9 a* I; m0 i0 M8 V  需要注意的是,无法在定义时仅指定ON COMMIT,还得附带个参数才行。 5 `  X. K3 T9 Q) N" r& V/ E
创建ON COMMIT物化视图:create materialized view mv_name refresh force on commit as select * from table_name
* y' L3 P+ y, s  7 \  }( {: N1 W/ p" D  ^/ V* `
  备注:实际创建过程中,基表需要有主键约束,否则会报错(ORA-12014) 0 r6 G; C0 F8 Z7 B" E0 w+ D
将MySQL数据迁移到Oracle 3 D% d; d7 c0 q" M5 }( B7 A
  
; D. t8 Y/ y0 N+ M9 d+ s. Q2 ^ 因为项目的原因,今晚将mysql数据库的内容尝试迁移到oracle,虽然结果失败,不过学到了不少,下次就不一定了,哈哈
( ?; x: Q' h6 R4 w/ g3 K" t1 `% q  . F9 y8 A9 e- t, x5 p
因为之前项目是使用mysql数据库的,现在因为新公司要求使用oracle(公司大得很),不得不尝试将以前项目进行迁移。 6 l6 k) O1 r/ ~; ~/ u  v" a
  
5 m' ]& f8 M4 U! a# c  经过查找相关文档,最终选定使用oracle sql developer。
/ ~- v4 r+ g; w; \0 T提示:将 Informix 和 DB2 数据库迁移到 Oracle。有关所有其他数据库迁移,请访问 Oracle SQL Developer 迁移。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-18 07:37 , Processed in 0.233305 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表