实体化视图刷新 实体化视图使用与快照相同的内部机制并支持几种刷新技术 实体化视图的完全刷新包括截断现有数据并重新插入所有基于详细表的数 据这通过重新执行 CREATE 命令的查询定义来实现 快速刷新仅适用于自上次刷新以来所进行的更改有两种可用的快速刷新 类型 • 使用实体化视图日志的快速刷新在这种情况下对基表的所有更改都会为 日志所捕获然后应用于实体化视图 • 使用 ROWID 范围的快速刷新在直接路径加载后可以根据新行的 ROWID 使用快速刷新来刷新实体化视图这种刷新类型需要直接加载器 日志 如有可能用强制刷新类型定义的视图使用快速机制进行刷新否则它 将使用完全刷新强制刷新是缺省的刷新类型 永不选项抑制所有的实体化视图刷新 刷新模式 使用 DBMS_MVIEW 程序包执行手动刷新DBMS_MVIEW 程序包提供了许多 过程和函数以管理实体化视图包括 REFRESH REFRESH_DEPENDENT 和 REFRESH_ALL_MVIEWS 进程 自动刷新可以在下述情况下执行 • ON COMMIT 在为实体化视图指定该选项时每当提交对其中的一个基表 的更改时就对其进行更新对实体化视图的更新与用户提交异步地发生 并且不降低用户的察觉性能 • 在指定的时间可以调度实体化视图在指定的时间发生例如通过使用 START WITH 和 NEXT 子句在每个星期一的上午 9 点刷新为了使这样 的刷新发生该例程必须使用 JOB_QUEUE_PROCESSES 参数启动作业 进程 实体化视图: 手动刷新 刷新专用的 MV: 基于一个或多个基表的 MV: 应被刷新的所有 MV: DBMS_MVIEW.REFRESH (‘SF_SALES’, parallelism => 10); DBMS_MVIEW.REFRESH_DEPENDENT(‘SALES’); DBMS_MVIEW.REFRESH_ALL_MVIEWS; create materialized view AN_VIEW_USER_BASE_FILE_ALL refresh complete on demand start with to_date('22-09-2005 20:30:00', 'dd-mm-yyyy hh24:mi:ss') next TRUNC(SYSD
oralce 物化视图/实体化视图
最新推荐文章于 2024-05-10 15:38:14 发布