Oracle 10g R2特性之数据仓库和集成特性
2006-11-18 11:59:41 来源:WEB开发网表 HOTELS 保存酒店的相关信息。当顾客预订酒店时,将在表 RESERVATIONS(包含房间价格报价)中创建一个记录。当顾客在酒店结帐时,将在另一个表 TRANS 中记录现金交易。
但在结帐前,酒店可能决定根据订房情况、升级、优惠等因素向顾客提供不同的房价。因此,最终的房价可能与预订时的报价不同,而且可以每天都各不相同。为正确记录这些价格变化,表 TRANS 有一行专门用来保存每天的房价信息。
为缩短查询响应时间,您可能决定根据用户发出的不同查询构建 MV,如:create materialized view mv_hotel_resv
refresh complete
enable query rewrite
as
select city, resv_id, cust_name
from hotels h, reservations r
where r.hotel_id = h.hotel_id;
和create materialized view mv_actual_sales
refresh complete
enable query rewrite
as
select resv_id, sum(actual_rate) from trans group by resv_id;
因此,如果设置了某些参数(如 query_rewrite_enabled = true),则类似如下所示的查询select city, cust_name
from hotels h, reservations r
where r.hotel_id = h.hotel_id;
将重写为select city, cust_name
from mv_hotel_resv;
您可以通过运行该查询并启用自动跟踪来确认 MV。SQL> set autot traceonly explain
SQL> select city, cust_name
2> from hotels h, reservations r
3> where r.hotel_id = h.hotel_id;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=3 Card=80 Bytes=2480)
1 0 MAT_VIEW ACCESS (FULL) OF 'MV_HOTEL_RESV' (MAT_VIEW) (Cost=3 Card=80 Bytes=2480)
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接