物化视图

    技术2022-05-12  35

    从Oracle 8i开始提供了实体化视图, 能过预先计算好的中间表来提高应用的访问速度, 在特定的情况下是很有用的一项技术. 另外实体化视图还可用于数据复制, 在这个上面的应用越来越多.

     

    要使用物化视图,有两个步骤:创建物化视图日志、创建物化视图

     

    创建物化视图日志,基本语法为:

    CREATE MATERIALIZED VIEW LOG ON [schema.]table options [PARALLEL int | NOPARALLEL] Partitioning_options WITH filter_option(s) [{INCLUDING|EXCLUDING} NEW VALUES];

     

    创建物化视图,基本语法为:

    CREATE MATERIALIZED VIEW [ schema. ] materialized_view [ column_alias [, column_alias]... ] [ OF [ schema. ] object_type ] [ (scoped_table_ref_constraint) ] { ON PREBUILT TABLE [ { WITH | WITHOUT } REDUCED PRECISION ] | physical_properties materialized_view_props } [ USING INDEX [ physical_attributes_clause | TABLESPACE tablespace ]... | USING NO INDEX ] [ create_mv_refresh ] [ FOR UPDATE ] [ { DISABLE | ENABLE } QUERY REWRITE ] AS subquery ; ============================================================================ 语句实例: 1. CREATE MATERIALIZED VIEW LOG ON emp --emp表建物化视图日志    WITH ROWID    INCLUDING NEW VALUES; CREATE MATERIALIZED VIEW LOG ON dept --dept表建物化视图日志    WITH ROWID    INCLUDING NEW VALUES;   2.   create materialized view dept_emp_mv refresh fast on commit --一定不要忘了加显示rowid并要加别名  WITH ROWID  --这个在提示 实体化视图日志不记录主键 时要加上    as     select a.rowid "ROWIDA", b.rowid "ROWIDB", a.* from emp a,dept b where a.deptno=b.deptno;

    最新回复(0)