ORACLE物化视图 Query Rewrite的一般理解之二
在Oracle的Query Rewrite中主要有三点, 第一是要使用CBO; 第二是要设置query rewrite enabled参数为TRUE; 第三是要先择设置query rewrite integrity参数的值(stale_tolerated, trusted, enforced). 对于第一点, 我们最好analyze相关的表及索引及MV; 对于第二点,这个参数只有两个值(true, false), 很简单; 对于第三点, 我们先来看Oracle的官方对于这个参数的解释:
ENFORCED
Oracle enforces and guarantees consistency and integrity
TRUSTED
Oracle allows rewrites using relationships that have been declared, but that are not enforced by Oracle.
STALE_TOLERATED
Oracle allows rewrites using unenforced relationships. Materialized views are eligible for rewrite even if they are known to be inconsistent with the underlying detail data.
这个参数有点难于理解一些, 但主要和数据的一致性有关, 在Oracle的Query Rewrite中, 一些约束的声明或状态和Oracle决于可否Query Rewrite有很大的关系. ENFORCED表示Oracle只相信Enabled和Validated的约束, 而Trusted则相信RELY的约束, 就算这个约束没有Enabled和Validated, 这两种都要求MVIEW中的数据是及时刷新的,而STALE_TOLERATED则可以容忍一切, 就算中间表的数据是旧的, 指基表有新数据修改而MVIEW还没有刷新的情况下, Oracle也会选择使用Query Rewrite来作查询, 在这种情况下, 查出来的数据可能是不准的. 下面我们来作一个例子来显示enforced与trusted的不同:
接着前面的例子,我们创建这样一个实体化视图:
CREATE MATERIALIZED VIEW MV_TABLE
ENABLE QUERY REWRITE
AS
SELECT U.USER#,COUNT(*) OBJCNT from USR_TABLE U,OBJ_TABLE O
WHERE U.USER#=O.USER#
group by u.user#
接下来我们创建这样的两个约束:
ALTER TABLE USR_TABLE ADD PRIMARY KEY (USER#) RELY DISABLE;
ALTER TABLE OBJ_TABLE ADD FOREIGN KEY (USER#)
REFERENCES USR_TABLE(USER#) RELY DISABLE;
下接来创建一个USR_LEVEL的表, 如下所示:
CREATE TABLE USR_LEVLEL AS SELECT USER#, TRUNC(USER#/10) ULEVEL from USR_TABLE;
实验所需要的表都建起来了, 对三个表和一个MVIEW进行分析后, 下面来做测试:
SQL> SHOW PARAMETE
相关文档:
oracle表空间操作详解
1
2
3作者: 来源: 更新日期:2006-01-04
5
6
7建立表空间
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
第一课:客户端
1. Sql Plus(客户端),命令行直接输入:sqlplus,然后按提示输入用户名,密码。
2. 从开始程序运行:sqlplus,是图形版的sqlplus.
3. http://localhost:5560/isqlplus
Toad:管理, PlSql Developer:
第二课:更改用户
1. sqlplus sys/bjsxt as sysdba
2. alter user scott account unlock;(解锁)
......
1.基础认识
DBMS_RANDOM包的详细信息:
select text from all_source
where name = 'DBMS_RANDOM'
......
我们经常谈及Oracle的权限,比如Connect,DBA,resource, sysdba, select any
table,
select_catelog_role这样一些权限,让我们眼花缭乱的,那么如何来区分这些种类繁多的privilege中不至于眼迷离呢,这个文章将
会对你在这方面的了解起到帮助。
以上我们看到的这些权限,都是可以通过g ......
■ 开发前要求配置
■ Select XML格式数据
■ Insert XML格式数据
■ Updata XML格式数据
■ Delete XML格式数据
开发前要求配置
必须安装Oracle客户端
把Classpath指向
classes111.zip ......