ORACLE物化视图 Query Rewrite的一般理解之一
http://www.anysql.net/oracle/query_rewrite_01.html
Query Rewrite 在数据仓库是是一个非常有用的技术, Tom在<<Effective Oracle by Design>>一书中将实体化视图(MView)称为是数据仓库的索引, 这是再贴切不过的了, 在OLTP中当SELECT语句的所有的字段都在索引中时, Oracle可以不从表读数据, 而直接从索引中获得全部信息, 而Query Rewrite则是通过创建中间表, 让Oracle自动从创建的中间表读取数据, 而不需要从原表读取了, 这个中间表可以是预先join好的或预先计算好的中间结果. 他的使用就和一般的索引同理了, 虽然你指定的还是那个大表, 但oracle可以为你自动识别可以从那个"数据仓库索引"中读取数据. 下面我们可以来看一下最简单的例子:
SQL> CREATE TABLE DETAIL_TABLE
2 AS SELECT OWNER,OBJECT_NAME from sys.dba_objects;
Table created.
SQL> DESC DETAIL_TABLE
Name Null? Type
---------------------------------- -------- --------------
OWNER VARCHAR2(30)
OBJECT_NAME VARCHAR2(128)
SQL> CREATE MATERIALIZED VIEW MID_TABLE ENABLE QUERY REWRITE
2 AS
3 SELECT OWNER,COUNT(*) TABCNT from DETAIL_TABLE GROUP BY OWNER;
Materialized view created.
SQL> DESC MID_TABLE
Name  
相关文档:
实践第一讲:
名词解释:
dataguard:呵呵 ORACLE高可用体系中三架马车之一(RAC、STREAM)。干嘛用???就是异地备份、容灾什么的。什么原理??==聊哈。
primary:数据母体
standby:数据母体的拷贝或备份或克隆(只能克9个 为什么 要问ORACLE 为什么 log_archive_dest_n 这个你N的上限是10喽)
实践第二件:
实践检 ......
当你在数据库中创建数据表的时候,你需要定义表中所有字段的类型。ORACLE有许多种数据类型以满足你的需要。数据类型大约分为:character, number, date, LOB, 和RAW等类型。虽然ORACLE8i也允许你自定义数据类型,但是它们是最基本的数据类型。在下面的文章中你将了解到他们在oracle 中的用法、限制以及允许值。
......
MView重要视图在源数据库端的相关视图DBA_BASE_TABLE_MVIEWSDBA_REGISTERED_MVIEWSDBA_MVIEW_LOGS在MView数据库端的相关视图DBA_MVIEWSDBA_MVIEW_REFRESH_TIMESDBA_REFRESH和DBA_REFRESH_CHILDRENMView相关包一些MView维护的相关问题SNAPSHOT vs. Materialized View清理无效的MView Log查询MView Log的大小检查MV的刷新兼 ......
当LGWR处于空闲状态时,它依赖于rdbms rpc message等待事件,处于休眠状态,直到三秒时间到,如果这个时候LGWR发现有Redo信息需要写出的话,那么LGWR将执行写的操作,log file parallel write等待事件将会出现。
总结一下Redo写的触发条件:
1,每三秒钟超时(timeout):
当LGWR处于空闲状态时,它依赖于rdbms r ......