- 浏览: 7251381 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
使用实例证明实体化视图和视图的区别 scott@TICKET> show user; USER 为 "SCOTT" scott@TICKET> create table t( key int primary key, val varchar(25)); create table t( key int primary key, val varchar(25)) * 第 1 行出现错误: ORA-00955: 名称已由现有对象使用 scott@TICKET> drop table t; 表已删除。 创建基础表 scott@TICKET> create table t( key int primary key, val varchar(25)); 表已创建。 插入基础数据 scott@TICKET> insert into t values(1,'a'); 已创建 1 行。 scott@TICKET> insert into t values(2,'b'); 已创建 1 行。 scott@TICKET> insert into t values(3,'c'); 已创建 1 行。 scott@TICKET> commit; 提交完成。 scott@TICKET> select * from t; KEY VAL ---------- ------------------------- 1 a 2 b 3 c 创建视图和物化视图 scott@TICKET> create view v as select * from t; create view v as select * from t * 第 1 行出现错误: ORA-01031: 权限不足 scott@TICKET> conn / as sysdba 已连接。 GLOBAL_NAME -------------------------------------------------------------------------------- sys@TICKET 给scott创建视图和物化视图的授权 sys@TICKET> grant create any view ,create any materialized view to scott; 授权成功。 sys@TICKET> conn scott/tiger 已连接。 GLOBAL_NAME -------------------------------------------------------------------------------- scott@TICKET scott@TICKET> create view v as select * from t; 视图已创建。 scott@TICKET> select * from v; KEY VAL ---------- ------------------------- 1 a 2 b 3 c scott@TICKET> select rowid,a.* from t a; ROWID KEY VAL ------------------ ---------- ------------------------- AAASzoAAEAAABHlAAA 1 a AAASzoAAEAAABHlAAB 2 b AAASzoAAEAAABHlAAC 3 c scott@TICKET> select rowid,a.* from v a; ROWID KEY VAL ------------------ ---------- ------------------------- AAASzoAAEAAABHlAAA 1 a AAASzoAAEAAABHlAAB 2 b AAASzoAAEAAABHlAAC 3 c scott@TICKET> create materialized view mv as 2 select * from t; 实体化视图已创建。 scott@TICKET> select rowid,a.* from mv a; ROWID KEY VAL ------------------ ---------- ------------------------- AAASzrAAEAAABH0AAA 1 a AAASzrAAEAAABH0AAB 2 b AAASzrAAEAAABH0AAC 3 c 由上面: 查询t,v,mv的信息可以看出mv的rowid和其他的不一样. scott@TICKET> update t set val='aa' where key=1; 已更新 1 行。 scott@TICKET> commit; 提交完成。 scott@TICKET> select * from t; KEY VAL ---------- ------------------------- 1 aa 2 b 3 c scott@TICKET> select * from v; KEY VAL ---------- ------------------------- 1 aa 2 b 3 c scott@TICKET> select * from mv; KEY VAL ---------- ------------------------- 1 a 2 b 3 c 由上面可以查看当基表t变化,t和v的查询结果相应的发生变化.但是mv的数据不变化. scott@TICKET> host scott@TICKET> conn /as sysdba 已连接。 GLOBAL_NAME -------------------------------------------------------------------------------- sys@TICKET sys@TICKET> conn scott/tiger 已连接。 GLOBAL_NAME -------------------------------------------------------------------------------- scott@TICKET 刷新物化视图的信息 scott@TICKET> exec dbms_mview.refresh('MV'); PL/SQL 过程已成功完成。 scott@TICKET> select * from mv; KEY VAL ---------- ------------------------- 1 aa 2 b 3 c scott@TICKET> update t set val='aa' where key=2; 已更新 1 行。 scott@TICKET> select * from t; KEY VAL ---------- ------------------------- 1 aa 2 aa 3 c scott@TICKET> select * from v; KEY VAL ---------- ------------------------- 1 aa 2 aa 3 c 由上面可以看出mv刷新之后,mv,t,v的数据一致. scott@TICKET> select * from mv; KEY VAL ---------- ------------------------- 1 aa 2 b 3 c 在创建物化视图的时候指定为快速更新视图 scott@TICKET> create materialized view mv_t refresh fast as select * from t; create materialized view mv_t refresh fast as select * from t * 第 1 行出现错误: ORA-23413: 表 "SCOTT"."T" 不带实体化视图日志 scott@TICKET> create materialized view log on t; 实体化视图日志已创建。 scott@TICKET> create materialized view mv_t refresh fast as select * from t; 实体化视图已创建。 scott@TICKET> create materialized view mv_t2 refresh fast as select t.* from t; 实体化视图已创建。 由以上可以看出创建物化视图时候指定为快速更新视图必须先创建实体化视图日志,在创建实体化视图. scott@TICKET> update t set val='abc' where key=3; 已更新 1 行。 scott@TICKET> commit; 提交完成。 scott@TICKET> select * from t; KEY VAL ---------- ------------------------- 1 aa 2 aa 3 abc scott@TICKET> select * from v; KEY VAL ---------- ------------------------- 1 aa 2 aa 3 abc scott@TICKET> select * from mv; KEY VAL ---------- ------------------------- 1 aa 2 b 3 c scott@TICKET> select * from mv_t; KEY VAL ---------- ------------------------- 1 aa 2 aa 3 c scott@TICKET> select * from mv_t2; KEY VAL ---------- ------------------------- 1 aa 2 aa 3 c 执行实体物化视图全部刷新 scott@TICKET> exec dbms_mview.refresh('MV','C'); PL/SQL 过程已成功完成。 执行实体物化视图快速刷新 scott@TICKET> exec dbms_mview.refresh('MV','F'); PL/SQL 过程已成功完成。 执行实体物化视图强制刷新 scott@TICKET> exec dbms_mview.refresh('MV','?'); PL/SQL 过程已成功完成。 查看物化视图的表信息 scott@TICKET> desc user_objects; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- OBJECT_NAME VARCHAR2(128) SUBOBJECT_NAME VARCHAR2(30) OBJECT_ID NUMBER DATA_OBJECT_ID NUMBER OBJECT_TYPE VARCHAR2(19) CREATED DATE LAST_DDL_TIME DATE TIMESTAMP VARCHAR2(19) STATUS VARCHAR2(7) TEMPORARY VARCHAR2(1) GENERATED VARCHAR2(1) SECONDARY VARCHAR2(1) NAMESPACE NUMBER EDITION_NAME VARCHAR2(30) scott@TICKET> col object_name for a30; scott@TICKET> col object_type for a20; scott@TICKET> select object_name,object_type from user_objects; OBJECT_NAME OBJECT_TYPE ------------------------------ -------------------- BONUS TABLE SALGRADE TABLE EMP_ENAME_IDX INDEX EMP_JOB_IDX INDEX SUPPLIER TABLE EMP_TEMP TABLE MLOG$_EMP TABLE RUPD$_EMP TABLE TEST TABLE SALES_DELTA TABLE DEPT TABLE EMP TABLE PK_EMP INDEX PK_DEPT INDEX TBS TABLE SYS_C0015204 INDEX T TABLE V VIEW MV TABLE SYS_C0015205 INDEX MV MATERIALIZED VIEW MLOG$_T TABLE RUPD$_T TABLE MV_T TABLE SYS_C0015206 INDEX MV_T MATERIALIZED VIEW MV_T2 TABLE SYS_C0015207 INDEX MV_T2 MATERIALIZED VIEW 已选择29行。 由以上信息可以看出 1.在对象信息(MV_T,MV_T2,MV)可以看出物化视图均对应一个同名称的表. 由此可以解释为当t表更新时候,mv不更新的原因,mv实际是把基表对应的查询结果放在一个表中,查询mv 查询结果集的信息.每 2.每一个实体化视图日志对应的对应的表如t创建实体化视图日志,对应的表为mlog$_t. 命名规则为:mlog$_<TBS_NAME> scott@TICKET> desc mlog$_t; 名称 是否为空? 类型 ----------------------------------------- -------- ---------------------------- KEY NUMBER(38) SNAPTIME$$ DATE DMLTYPE$$ VARCHAR2(1) OLD_NEW$$ VARCHAR2(1) CHANGE_VECTOR$$ RAW(255) scott@TICKET> update t set val='aaab' where key=1; 已更新 1 行。 scott@TICKET> select count(1) from mlog$_t; COUNT(1) ---------- 2 scott@TICKET> commit; 提交完成。 scott@TICKET> select count(1) from mlog$_t; COUNT(1) ---------- 2 scott@TICKET> select rowid,a.* from mv a; ROWID KEY VAL ------------------ ---------- ------------------------- AAASzrAAEAAABH0AAA 1 aa AAASzrAAEAAABH0AAB 2 aa AAASzrAAEAAABH0AAC 3 abc scott@TICKET> spool off; 参考官方网站:http://download.oracle.com/docs/cd/B10501_01/server.920/a96568/rarmviea.htm
发表评论
-
Oracle truncate 和drop 的区别测试
2011-09-15 21:47 1646设置autotrace功能 1.创建plan_table ... -
Oracle中证明spfile和pfile的启动顺序
2011-09-13 23:44 2697问题: Oracle在nomount状态:只启动实例 ... -
ORACLE在windows上使用orakill结束oracle会话的线程
2011-09-13 23:08 4643在windows上使用orakill结束oracle会话的线程 ... -
Oracle【COLUMN】设置表字段默认值仅对未来生效
2011-09-13 22:10 3139【COLUMN】设置表字段默 ... -
Oracle无法使用命令 /usr/X11R6/bin/xdpyinfo 自动检查显示器颜色
2011-09-13 19:59 12864在suse10中安装orac ... -
Oracle Listener中常用命令
2011-09-12 22:37 1787Oracle Listener中常用命令1.通过lsnrctl ... -
简单描述Oracle临时表的存储特点
2011-09-12 22:28 1876简单描述临时表的存储特点。 临时表的数据存储在临时表空间 ... -
Oracle实现定时expdp备份
2011-09-12 22:14 4449在项目中实现oracle的每周五进行一次全部分,通过 ... -
用户的$home/.dmrc已被忽略,这将无法保存 默认会话和语言
2011-09-11 23:44 2521用户的$home/.dmrc已被忽略,这将无法保存 默认会话和 ... -
undo表空间学习总结
2011-09-11 12:59 2346undo 表空间只有一个是 ... -
Oracle11g中SCN与TimeStamp的相互转换
2011-09-10 18:55 3311Oracle11g中SCN与TimeStamp的相互转换 作 ... -
ORA-01578: ORACLE 数据块损坏的解决方案
2011-09-01 19:32 7502错误描述: Errors in file d:\app\ad ... -
Oracle v$parameter表知多少
2011-09-01 00:07 2763orale中一个重要的视图v$parameter,我们知道知 ... -
Oracle 初始化参数的管理
2011-08-31 22:50 1257orale中一个重要的视图v$parameter,我们知道知 ... -
Oracle查询数据库的各种文件
2011-08-31 22:40 1971查询数据库的各种文件 set lines 100 pages ... -
Oracle 性能调优学习笔记(二)- ----Oracle SQL TRACE和TKPROF使用
2011-08-30 15:14 2618Oracle SQL TRACE和TKPROF使用 ... -
Why VKTM background process in Oracle 11g(转)
2011-08-30 14:11 2636在分析Oracle的Alertlog时候,发现有一 ... -
没事看看Oracle的AlertSID.log做一下分析
2011-08-30 13:43 2272后台进程trace file: alert log 文 ... -
Oracle Job使用和管理
2011-08-30 11:32 3063Oracle job 管理 查看数据 ... -
Oracle 11g新特性之Create pfile from memory
2011-08-29 18:52 2549Oracle 11g新特性之Create pfile from ...
相关推荐
实体化视图-快照 自己调试的样例 供大家参考
贺辞 序 前言 第1章 建立和配置...9.1.3 实体化视图 9.1.4 利用 DBMS_STATS 收集性能统计 数据 9.2 新索引类型 9.2.1 基于函数的索引 9.2.2 反向键索引 9.2.3 降序索引 9.2.4 索引编排表 9.2.5 管理索引的...
§13.6 使用实体视图 - 169 §13.6.1 实体视图概念 169 §13.6.2 创建实体视图 169 §13.6.3 使用实体视图 169 §13.6.4 管理实体视图 169 第14章 优化器(Optimizer)简介 170 §14.1 Oracle优化器 170 §14.2 SQL...
3.2 专用和共享服务器体系结构之间的差别 51 3.2.1 专用服务器 51 3.2.2 共享服务器 52 3.2.3 设置分派进程 53 3.2.4 监视共享服务器的视图 54 3.3 定义连接 55 3.3.1 连接描述符 55 3.3.2 定义连接描述符 ...
mssql 微软 只能能运行在windows平台,体积比较庞大,占用许多系统资源, 但使用很方便,支持命令和图形化管理,收费。 中型企业 Mysql 甲骨文 是个开源的数据库server,可运行在多种平台, 特点是响应速度特别快,...
§4.2.45 实体视图完整例子 142 §4.3 序号(sequence) 146 §4.3.1 建立序号 146 §4.3.2 修改序号 147 §4.3.3 使用序号 147 §4.3.4 删除序号 147 §4.4 同义词 148 §4.4.1 建立同义词 148 §4.4.2 删除同义词 ...
3.2 专用和共享服务器体系结构之间的差别 3.2.1 专用服务器 3.2.2 共享服务器 3.2.3 设置分派进程 3.2.4 监视共享服务器的视图 3.3 定义连接 3.3.1 连接描述符 3.3.2 定义连接描述符 3.3.3 Oracle连接管理器 3.3.4 ...
实例252 自定义最大化、最小化和关闭按钮 321 实例253 禁止改变窗体的大小 323 11.3 设置窗体的标题栏 324 实例254 指定窗体标题栏图标 324 实例255 拖动没有标题栏的窗体 325 实例256 取消窗体标题栏与边框 326 ...
§4.2.45 实体视图完整例子 142 §4.3 序号(sequence) 146 §4.3.1 建立序号 146 §4.3.2 修改序号 147 §4.3.3 使用序号 147 §4.3.4 删除序号 147 §4.4 同义词 148 §4.4.1 建立同义词 148 §4.4.2 删除同义词 ...
1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...
1个目标文件,JNDI的使用例子,有源代码,可以下载参考,JNDI的使用,初始化Context,它是连接JNDI树的起始点,查找你要的对象,打印找到的对象,关闭Context…… ftp文件传输 2个目标文件,FTP的目标是:(1)提高...