目录
- 一、物化视图的优点
- 二、物化视图的缺点
- 三、物化视图的类型
- 四、创建物化视图
- 五、刷新物化视图
-
- 1、手动刷新
- 2、自动刷新
-
- (1)刷新策略
- (2)定期刷新
- (3)快速刷新
-
- 3.1、快速刷新过程
- 3.2、快速刷新的优点
- 3.3、使用限制
- 3.4、执行快速刷新
- 六、查询重写
-
- 1、查询重写机制
- 2、查询重写的条件
- 3、查询重写的限制
- 4、查询重写示例
- 七、物化视图日志
-
- 1、物化视图日志的作用
- 2、物化视图日志的类型
- 3、创建物化视图日志
- 4、使用物化视图日志进行快速刷新
- 4、限制与注意事项
Oracle物化视图(Materialized View)是一种特殊类型的数据库对象,它预先计算并存储复杂查询的结果,从而可以显著提高某些查询的性能。物化视图可以被视为一种缓存机制,其中包含的数据是基于一个或多个基表的查询结果的副本。与普通的视图不同,物化视图中的数据是物理存储的,而不是每次查询时重新计算。
一、物化视图的优点
- 提高查询性能:预计算的数据可以快速检索,避免了实时计算的开销。
- 降低网络负载:如果数据是从远程数据库提取的,物化视图可以减少网络传输量。
- 简化查询:用户可以直接查询物化视图,而无需关心底层的数据结构。
- 数据汇总:物化视图可以包含聚合数据,如SUM、AVG等,加速汇总查询。
二、物化视图的缺点
- 存储成本:物化视图占用额外的磁盘空间。
- 维护成本:物化视图需要定期刷新以保持数据最新。
- 数据延迟:数据可能不是实时的,取决于刷新频率。
三、物化视图的类型
- 简单物化视图:基于单个基表的物化视图。
- 连接物化视图:基于多个基表的连接查询的物化视图。
- 汇总物化视图:包含聚合函数结果的物化视图。
四、创建物化视图
创建物化视图的基本语法如下:
CREATE MATERIALIZED VIEW mv_name
BUILD {IMMEDIATE | DEFERRED}
REFRESH {FAST | COMPLETE | FORCE} ON {
COMMIT | STATEMENT | ROW | DEMAND | NEVER}
ENABLE QUERY REWRITE
AS SELECT column_list FROM table_name WHERE condition;
BUILD IMMEDIATE
或DEFERRED
:决定物化视图在创建时是否立即构建。REFRESH FAST
,COMPLETE
,FORCE
:定义物化视图的刷新方式。ON COMMIT
,STATEMENT
,ROW
,DEMAND
,NEVER
:定义何时触发物化视图的刷新。ENABLE QUERY REWRITE
:允许Oracle自动重写查询,直接从物化视图中获取数据。
五、刷新物化视图
刷新物化视图可以使用以下命令:
BEGIN
DBMS_MV