1物化视图
视图 (VIEW) 可以看做是一种逻辑表,其数据来自于一张表或多张表,不占用物理存储空间。对视图的 DML 操作本质上是对其基表的操作。物化视图和普通视图一样,都是构建在一个查询语句之上的,只是物化视图会存储并刷新视图中的数据。
物化视图 (MATERIALIZED VIEW) 是目标表在特定时间点上的一个副本,占用存储空间,即将查询出来的数据存储在数据库中。当所依赖的一个或多个基表的数据发生更新,必须启用刷新机制才能保证数据是最新的。
物化视图可以用于数据复制(Data Replication),也可用于数据仓库缓存结果集以此来提升复杂查询的性能。
1.1物化视图的创建
1.1.1创建基于主键的物化视图
创建employee表插入数据
创建物化视图
默认的物化视图类型,通过主键来标示行的变化,表上必须有主键
查询物化视图及信息
物化视图也占一定的空间
1.1.2创建基于 rowid 的物化视图
创建city表插入数据
若表上无主键,可使用基于 rowid 的方式创建物化视图。示例语句如下:
通过系统表 user_mviews 查询物化视图信息
查询物化视图数据
1.2物化视图日志
当基表上有 DML 操作时,系统将变化记录在日志表里,然后使用这些日志刷新到物化视图,这种刷新方式为快速刷新。通过快速刷新避免了全量刷新,也降低了同步数据的开销。
1.2.1创建基于主键的物化视图日志
创建日志
一张表上只能创建一个物化视图日志。根据需求选择创建的类型,基于主键或者基于 ROWID。
1.2.2创建基于ROWID 的物化视图日志
创建日志
1.2.3查看物化视图日志
注意
物化视图日志创建成功后,会自动建立物化视图日志表并在表上建立一个触发器。
使用如下语法,将已创建的物化视图刷新方式由全量刷新改为快速刷新
更新基表 w_employee的一条数据,比如増删改,日志表中会记录
查看日志
同理,对另一张表插入数据
查看日志
1.2.4删除物化视图日志
删除物化视图日志
删除日志后已无法查询
社区地址:https://eco.dameng.com