视图,物化视图,更新

视图

CREATE OR REPLACE FORCE VIEW XXXX
(
   ……
)
AS
   SELECT   ……
     FROM   ……
   WITH READ ONLY;

以上是创建了一个视图

BEGIN 
  SYS.DBMS_JOB.REMOVE(141);
COMMIT;
END;
/

DECLARE
  X NUMBER;
BEGIN
  SYS.DBMS_JOB.SUBMIT
  ( job       => X 
   ,what      => 'DBMS_MVIEW.REFRESH(''视图名'', ATOMIC_REFRESH => FALSE);'
   ,next_date => to_date('01/01/4000 00:00:00','dd/mm/yyyy hh24:mi:ss')
   ,interval  => 'trunc(SYSDATE+1)+(01/24)'
   ,no_parse  => FALSE
  );
  SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
  SYS.DBMS_JOB.BROKEN
   (job    => X,
    broken => TRUE);
COMMIT;
END;
以上是一个JOB,定时去刷新上面创建的视图


物化视图

和以上类似


但是大家要了解普通视图和物化视图的区别:

普通视图是虚拟表,是不存储任何物理数据的,只有定义;而物化视图是将数据转换为一个实际表,实际存储

视图是为了简化设计,它只会影响性能,更不会提高性能,只是为了方便程序员,将几个表联合查询,生成视图,如果再将视图联合生成视图,那性能就更低了;



你可能感兴趣的:(视图,物化视图,更新)