创建物化视图MV ( Materialized View )


创建物化视图时候的一些选项 : 

ON PREBUILD TABLE
将已经存在的表注册为实体化视图。同时还必须提供描述创建该表的查询的 SELECT 子句。可能无法始终保证查询的精度与表的精度匹配。为了克服此问题,应该在规范中包含 WITH REDUCED PRECISION 子句。注意:这种方法不能用于以ROWID方式建立MVIEW,因为按照ROWID方式建立的ROWID所对应的表
需要包含一个隐含的ROWID列。

Build Clause
创建方式,决定是否在创建MV的时候生成数据。
· BUILD IMMEDIATE(默认): 在创建实体化视图的时候就生成数据
· BUILD DEFERRED: 在创建时不生成数据,以后在刷新MV的时候生成数据

 

 

下面语句在数据库中不存在表的情况下建立物化视图, 建立物化视图后,会自动生成一个同名称的表, 且会自动创建同义词 。

如果表 SFISM4.R_PKGID_BOM_T 已经存在,可以在建立物化视图的语句中加入 ON PREBUILD TABLE,以免提示物件名称已经存在 。 

 


CREATE MATERIALIZED VIEW SFISM4.R_PKGID_BOM_T
TABLESPACE SN_DATA
PCTUSED    40
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          100M
            NEXT             100M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
NOCACHE
LOGGING
NOPARALLEL
BUILD  IMMEDIATE 
USING INDEX
            TABLESPACE SN_IDX
            PCTFREE    10
            INITRANS   2
            MAXTRANS   255
            STORAGE    (
                        INITIAL          50M
                        NEXT             100M
                        MINEXTENTS       1
                        MAXEXTENTS       UNLIMITED
                        PCTINCREASE      0
                        FREELISTS        1
                        FREELIST GROUPS  1
                        BUFFER_POOL      DEFAULT
                       )
REFRESH FAST
START WITH TO_DATE('15-06-2010 08:04:09','dd-mm-yyyy hh24:mi:ss')
NEXT   sysdate + 1/24
WITH ROWID
AS  
SELECT   "R_PKGID_BOM_T"."HH_PN" "HH_PN",
         "R_PKGID_BOM_T"."QTY" "QTY",
         "R_PKGID_BOM_T"."MFG_PN" "MFG_PN",
         "R_PKGID_BOM_T"."DATE_CODE" "DATE_CODE",
         "R_PKGID_BOM_T"."LOT_NO" "LOT_NO",
         "R_PKGID_BOM_T"."PO" "PO",
         "R_PKGID_BOM_T"."PKG_ID" "PKG_ID",
         "R_PKGID_BOM_T"."CTC" "CTC",
         "R_PKGID_BOM_T"."EMP_NO" "EMP_NO",
         "R_PKGID_BOM_T"."CDATE" "CDATE",
         "R_PKGID_BOM_T"."CHECK_FLAG" "CHECK_FLAG",
         "R_PKGID_BOM_T"."CHECK_RES" "CHECK_RES",
         "R_PKGID_BOM_T"."CHECK_TIME" "CHECK_TIME",
         "R_PKGID_BOM_T"."SPEC_FLAG" "SPEC_FLAG",
         "R_PKGID_BOM_T"."IC_SIZE" "IC_SIZE",
         "R_PKGID_BOM_T"."SIZE_DATE" "SIZE_DATE",
         "R_PKGID_BOM_T"."LF_FLAG" "LF_FLAG",
         "R_PKGID_BOM_T"."REV" "REV",
         "R_PKGID_BOM_T"."VENDOR_NAME" "VENDOR_NAME",
         "R_PKGID_BOM_T"."REMAIN_QTY" "REMAIN_QTY",
         "R_PKGID_BOM_T"."DISTRIBUTE_ORD" "DISTRIBUTE_ORD",
         "R_PKGID_BOM_T"."TIPTOP_ORD" "TIPTOP_ORD"
  FROM   "SFISM4"."R_PKGID_BOM_T"@TO_EPD3 "R_PKGID_BOM_T";


CREATE INDEX SFISM4.IDX_MFG_PN_BOM ON SFISM4.R_PKGID_BOM_T
(MFG_PN)
LOGGING
TABLESPACE SN_IDX
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          50M
            NEXT             100M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;

CREATE INDEX SFISM4.INDEX_BOM_PKGID ON SFISM4.R_PKGID_BOM_T
(PKG_ID)
LOGGING
TABLESPACE SN_IDX
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          50M
            NEXT             100M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;

CREATE INDEX SFISM4.INDEX_CHECKTIME ON SFISM4.R_PKGID_BOM_T
(CHECK_TIME)
LOGGING
TABLESPACE SN_IDX
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          50M
            NEXT             100M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;

CREATE INDEX SFISM4.INDEX_EMP ON SFISM4.R_PKGID_BOM_T
(EMP_NO)
LOGGING
TABLESPACE SN_IDX
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          50M
            NEXT             100M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;

CREATE INDEX SFISM4.INDEX_HH_PN ON SFISM4.R_PKGID_BOM_T
(HH_PN)
LOGGING
TABLESPACE SN_IDX
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          50M
            NEXT             100M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;

-- Note: Index I_SNAP$_R_PKGID_BOM_T will be created automatically
--       by Oracle with the associated materialized view.

CREATE INDEX SFISM4.PKGID_BOM_CDATE ON SFISM4.R_PKGID_BOM_T
(CDATE)
LOGGING
TABLESPACE SN_IDX
PCTFREE    10
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          50M
            NEXT             100M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            FREELISTS        1
            FREELIST GROUPS  1
            BUFFER_POOL      DEFAULT
           )
NOPARALLEL;

GRANT DELETE, INSERT, SELECT, UPDATE ON SFISM4.R_PKGID_BOM_T TO DMD_ALL_ROLE;

GRANT SELECT ON SFISM4.R_PKGID_BOM_T TO DMD_MLINE_ROLE;

GRANT DELETE, INSERT, SELECT, UPDATE ON SFISM4.R_PKGID_BOM_T TO MACADMIN;

GRANT ALTER, DELETE, INDEX, INSERT, REFERENCES, SELECT, UPDATE, ON COMMIT REFRESH, QUERY REWRITE, DEBUG, FLASHBACK ON SFISM4.R_PKGID_BOM_T TO SFIS1;

------------------------------------------------------------- 

 

重要的一点,如果要快速刷新,必须在基表上建立mv log .  这里到上面dblink   "TO_EPD3"  所指的基表数据库中去建立mv log ,  以便于能设置快速刷新。

 

 

CREATE MATERIALIZED VIEW LOG ON SFISM4.R_PKGID_BOM_T
TABLESPACE LOG_DATA
PCTUSED    30
PCTFREE    60
INITRANS   2
MAXTRANS   255
STORAGE    (
            INITIAL          20M
            NEXT             20M
            MINEXTENTS       1
            MAXEXTENTS       UNLIMITED
            PCTINCREASE      0
            BUFFER_POOL      DEFAULT
           )
NOCACHE
LOGGING
NOPARALLEL
WITH ROWID
EXCLUDING NEW VALUES;

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-665370/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-665370/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值