Oracle认证辅导:Oracle10g物化视图例子
5 z% y9 B$ l6 j在oracle10g 下创建一个简单的物化视图(materialized view)的例子
5 q8 `' ~0 T2 P9 I3 N+ j+ w9 S' V8 n--物化视图2 m8 c, r& q& m _
--0.cmd 修改系统参数,在init.ora里面修改则每次都有效# s9 [1 D: ?& h
alter system set job_queue_processes=20;
3 K- I2 ] U) f$ Q3 d; E# i+ n* I如果这个参数为0,物化视图是不会刷新的
! I W3 `! U+ K3 ^/ u--1.建表,必须有索引) d- E2 ?% K, L' O# l: ^* U" U
create table stu
2 z d7 o' O2 S* N# L5 i# O($ y# F ?( n3 Y* c" n- s
id, Q8 r# C7 l {
varchar2(10) primary key,//& W6 q6 L9 R$ l9 Z) |) f; `' a
name varchar2(20)! k/ R. P1 a+ R
)1 g2 z+ T5 d7 A6 j
//不是主键就需要建索引CREATE INDEX INDEX_STU ON STU(ID)
# | j! c& ^0 H4 b. V5 D+ q--2.建日志4 C" C+ m+ X# A2 Q$ x6 |
CREATE MATERIALIZED VIEW LOG ON STU;# X" U2 `8 |/ D4 c2 v
--3.建视图
( c+ e4 p- |0 D& Rcreate MATERIALIZED VIEW STU_VIEW
: n, h7 K3 a% S PREFRESH FAST' o2 A2 F9 v( [
START WITH SYSDATE7 j7 H* j6 |5 {% v' i
NEXT SYSDATE + 1/1440) N. o8 F. X# N+ ?) p
WITH PRIMARY KEY9 l) ?$ b( H' `5 x
AS
% H( p3 b9 q# E1 cSELECT * FROM STU
% f/ ]9 l( J! x( f6 e--4.插入数据
' E" D" z# O6 _INSERT INTO STU(ID,NAME) VALUES(‘56’,‘555555555555’);
" P- [3 i" w. z. C; ^COMMIT;' A5 _5 Q0 V9 G/ [( {; R. o
--5.查看视图数据变化- @% N) r+ {. j+ {7 E
SELECT * FROM oemcyd.STU_VIEW;7 i( m6 I/ ?* M0 p# u) T" b/ H) u; e
--6.查询物化视图刷新时间
9 a0 T, L' u9 J* `SELECT MM.mview_name,MM.last_refresh_date% ]7 ^" B- k3 }. H
FROM DBA_MVIEWS MM |