- 浏览: 7340874 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 1692设置autotrace功能 1.创建plan_table ... -
Oracle中证明spfile和pfile的启动顺序
2011-09-13 23:44 2757问题: Oracle在nomount状态:只启动实例 ... -
ORACLE在windows上使用orakill结束oracle会话的线程
2011-09-13 23:08 4688在windows上使用orakill结束oracle会话的线程 ... -
Oracle【COLUMN】设置表字段默认值仅对未来生效
2011-09-13 22:10 3180【COLUMN】设置表字段默 ... -
Oracle无法使用命令 /usr/X11R6/bin/xdpyinfo 自动检查显示器颜色
2011-09-13 19:59 12984在suse10中安装orac ... -
Oracle Listener中常用命令
2011-09-12 22:37 1841Oracle Listener中常用命令1.通过lsnrctl ... -
简单描述Oracle临时表的存储特点
2011-09-12 22:28 1921简单描述临时表的存储特点。 临时表的数据存储在临时表空间 ... -
Oracle实现定时expdp备份
2011-09-12 22:14 4484在项目中实现oracle的每周五进行一次全部分,通过 ... -
用户的$home/.dmrc已被忽略,这将无法保存 默认会话和语言
2011-09-11 23:44 2554用户的$home/.dmrc已被忽略,这将无法保存 默认会话和 ... -
undo表空间学习总结
2011-09-11 12:59 2403undo 表空间只有一个是 ... -
Oracle11g中SCN与TimeStamp的相互转换
2011-09-10 18:55 3383Oracle11g中SCN与TimeStamp的相互转换 作 ... -
ORA-01578: ORACLE 数据块损坏的解决方案
2011-09-01 19:32 7616错误描述: Errors in file d:\app\ad ... -
Oracle v$parameter表知多少
2011-09-01 00:07 2812orale中一个重要的视图v$parameter,我们知道知 ... -
Oracle 初始化参数的管理
2011-08-31 22:50 1298orale中一个重要的视图v$parameter,我们知道知 ... -
Oracle查询数据库的各种文件
2011-08-31 22:40 2045查询数据库的各种文件 set lines 100 pages ... -
Oracle 性能调优学习笔记(二)- ----Oracle SQL TRACE和TKPROF使用
2011-08-30 15:14 2651Oracle SQL TRACE和TKPROF使用 ... -
Why VKTM background process in Oracle 11g(转)
2011-08-30 14:11 2675在分析Oracle的Alertlog时候,发现有一 ... -
没事看看Oracle的AlertSID.log做一下分析
2011-08-30 13:43 2331后台进程trace file: alert log 文 ... -
Oracle Job使用和管理
2011-08-30 11:32 3112Oracle job 管理 查看数据 ... -
Oracle 11g新特性之Create pfile from memory
2011-08-29 18:52 2611Oracle 11g新特性之Create pfile from ...
相关推荐
5. 复制环境的创建步骤:创建Oracle数据库复制环境通常遵循一系列明确的步骤,包括设置主体站点、创建主体组、配置主体表的冲突解决策略、设置实体化视图站点、创建部署模板、实例化程序包和实例化部署模板,以及...
### 常用的Oracle表和视图知识点详解 #### 一、查询某个表在哪些存储过程中被使用 为了高效地了解某个特定表在哪些存储过程中被引用,可以通过以下SQL查询来实现: ```sql SELECT A.NAME AS 过程名称, MIN(A.LINE...
### Oracle数据库实例教程知识点概述 #### 一、Oracle 数据库基础 ...通过以上知识点的学习,读者能够全面地掌握 Oracle 数据库的使用方法和技术要点,从而能够在实际工作中更加高效地管理和操作 Oracle 数据库。
在C#中,我们可以使用ODP.NET(Oracle Data Provider for .NET)来连接和操作Oracle数据库。ODP.NET提供了ADO.NET接口,包括DataSet、DataTable、DataAdapter等对象,使得在C#中处理Oracle数据如同操作本地数据一样...
Oracle Developer是Oracle公司..."ORACLE_DEVELOPER使用指南"PDF文档将深入讲解这些方面,提供详细的步骤和实例,帮助你成为熟练的Oracle开发者。无论你是新手还是有经验的开发者,这个指南都将是你宝贵的参考资料。
实体化视图-快照 自己调试的样例 供大家参考
8. **视图与物质化视图**:创建和使用视图,理解视图在数据库抽象和权限控制中的应用,以及物质化视图在数据缓存和数据同步中的作用。 9. **事务与并发控制**:理解事务的概念,掌握COMMIT、ROLLBACK、SAVEPOINT...
文件100.001至100.010可能包含了上述各方面的实例和具体操作步骤,通过学习这些实例,读者可以更深入地理解Oracle数据库的使用和编程,解决实际工作中遇到的问题,提升数据库管理和开发的水平。无论是数据库管理员...
2. Oracle体系结构:Oracle数据库的架构包括了数据库实例、数据库文件、控制文件、重做日志文件、参数文件等,这些元素如何协同工作来确保数据的持久性和一致性。 3. 表和索引:详细讲解如何创建、修改和删除表,...
在Oracle 9i中,快照的概念被实体化视图复制所取代,同时保留了多主体复制和新增了混合复制。 高级复制的核心概念包括: 1. **主体(Master)**:在复制环境中,主体是数据的原始源,负责产生和更新数据。当数据...
6. **视图和物质化视图**:视图提供了一种抽象数据的方式,而物质化视图则可以预先计算并存储复杂查询的结果,以提高查询速度。 7. **安全性与权限**:Oracle 8-8i提供用户管理和权限控制机制,如GRANT和REVOKE命令...
Oracle实例数据库是一个复杂的系统,包含了各种组件和结构,用于存储、管理和处理数据。在这个特定的实例中,我们有一个专为新手设计的数据库,它包含了四张表,这为初学者提供了一个基础的学习平台,便于理解Oracle...
通过"Oracle超强学习笔记"的深入学习,你将能够全面掌握Oracle数据库的使用和管理,无论你是初学者还是经验丰富的专业人士,都能从中受益匪浅。在实际操作中不断实践,逐步提升你的Oracle技术水平,成为一名优秀的...
### 超详细ORACLE培训实例知识点概览 #### 引言 - **SUN与Oracle合并背景**:2009年,Oracle宣布以74亿美元收购SUN,这一举措被视为Oracle进军云计算领域的关键步骤。SUN拥有强大的硬件基础和技术积累,特别是其在...
Oracle 11g R2的文档路线图(Oracle Database Documentation Roadmap)也为读者提供了更加系统的学习路径,旨在帮助读者更有效地查阅相关文档,从而深入理解和掌握Oracle数据库的使用和管理。 这份文档的最后还提供...
站点分为两种类型:主体站点(Master Sites)和实体化视图站点(Materialized View Sites)。 - **计划链接(Scheduled Links)**:一种数据库链接,用于按照预定的时间表将数据从一个站点同步到另一个站点。 - **主体...
本主题“Oracle + JSP数据库开发与实例”涵盖了这两个关键技术的整合使用,旨在帮助开发者掌握如何在实际项目中构建基于Oracle和JSP的数据驱动应用。 首先,Oracle数据库系统的使用涉及了SQL语言的学习,包括SELECT...
了解如何通过SQL*Plus和其他管理工具来管理和维护Oracle实例。 10. **实战项目**:通过赵强老师的课件,你将有机会参与到实际的项目中,将所学知识应用于解决实际问题,提高解决复杂数据库问题的能力。 赵强老师的...