实例化视图可以快速刷新吗?

时间:2019-11-18 12:00:55

标签: oracle materialized-views

CREATE MATERIALIZED VIEW TEST
BUILD IMMEDIATE
REFRESH COMPLETE ON DEMAND
AS 
WITH test1
     AS (  SELECT EMPY_UID,
                  PRDE_UID,
                  PRDE_DATDEBMVT,
                  PRDE_DATFINMVT,
                  DAT.DATES V_DATCPT
             FROM (SELECT /*+ USE_HASH(TPAI,VLEMP,EMPY,PRDE) */
                         EMP.EMPY_UID       EMPY_UID,
                          PRDE.PRDE_UID     PRDE_UID,
                          PRDE.PRDE_DATDEBMVT PRDE_DATDEBMVT,
                          PRDE.PRDE_DATFINMVT PRDE_DATFINMVT
                     FROM GRH_EMPLOYES EMP
                          INNER JOIN GRH_PERIODES PRDE
                             ON     EMP.EMPY_TYPEMP = 1
                                AND PRDE.PRDE_CLO != 1 and PRDE.PRDE_VLD != 1
                                AND emp.empy_uid = 1093
                                AND emp.empy_UID IN
                                       (SELECT EMPY.EMPY_UID
                                          FROM GRH_EMPLOYES EMPY
                                               INNER JOIN
                                               V_GRH_PAI_LISTEMPLOYESCALCP
                                               VLEMP
                                                  ON EMPY.EMPY_UID =
                                                        VLEMP.EMPY_UID + 0
                                         WHERE     EMPY.GRPE_UID <> 4
                                               AND EMPY.pstn_uid + 0 = 26)
                          INNER JOIN GRH_TYPEPAIE TPAI
                             ON PRDE.TPAI_UID = TPAI.TPAI_UID
                    WHERE TPAI.TPAI_COD = '001' AND 1 = 1) EMPPRD
                  INNER JOIN
                  (SELECT   (SELECT PRDE.PRDE_DATDEBADM
                               FROM GRH_PERIODES PRDE, GRH_TYPEPAIE TPAI
                              WHERE     TPAI.TPAI_COD = '001'
                                    AND PRDE.PRDE_UID =
                                           ANY (SELECT MAX (PRDE1.PRDE_UID)
                                                  FROM GRH_PERIODES PRDE1,
                                                       GRH_TYPEPAIE TPAI1
                                                 WHERE     PRDE1.PRDE_VLD = 1
                                                       AND TPAI1.TPAI_COD =
                                                              '001'
                                                       AND PRDE1.TPAI_UID =
                                                              TPAI1.TPAI_UID
                                                INTERSECT
                                                SELECT PRDE.PRDE_UID
                                                  FROM GRH_PERIODES PRDE
                                                 WHERE PRDE.TPAI_UID =
                                                          TPAI.TPAI_UID)
                                    AND PRDE.TPAI_UID = TPAI.TPAI_UID
                                    AND TPAI.TPAI_COD = '001')
                          + ROWNUM
                          - 1
                             DATES
                     FROM all_objects
                    WHERE ROWNUM <= 90) DAT
                     ON DAT.DATES BETWEEN TO_DATE (
                                             TO_CHAR (EMPPRD.PRDE_DATDEBMVT,
                                                      'DD/MM/YYYY'),
                                             'DD/MM/YYYY')
                                      AND TO_DATE (
                                             TO_CHAR (EMPPRD.PRDE_DATFINMVT,
                                                      'DD/MM/YYYY'),
                                             'DD/MM/YYYY')
         GROUP BY EMPY_UID,
                  PRDE_UID,
                  PRDE_DATDEBMVT,
                  PRDE_DATFINMVT,
                  DAT.DATES)
SELECT EMPY_UID,
       PRDE_UID,
       V_DATCPT,
       PKG_GRH_MVT.GRH_MVT_ISABSENCEIRREGULIER (
          V_DATCPT,
          EMPY_UID,
          GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                PRDE_UID,
                                PRDE_DATDEBMVT,
                                PRDE_DATFINMVT),
          PRDE_UID)
          ABSIRR,
       PKG_GRH_MVT.GRH_MVT_ISABSENCEMALADIE (
          V_DATCPT,
          EMPY_UID,
          GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                PRDE_UID,
                                PRDE_DATDEBMVT,
                                PRDE_DATFINMVT),
          PRDE_UID)
          ABSMLD,
       PKG_GRH_MVT.GRH_MVT_ISABSENCESANCTION (
          V_DATCPT,
          EMPY_UID,
          GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                PRDE_UID,
                                PRDE_DATDEBMVT,
                                PRDE_DATFINMVT),
          PRDE_UID)
          ABSSANCTION,
       PKG_GRH_MVT.GRH_MVT_ISABSENCEACCIDENT (
          V_DATCPT,
          EMPY_UID,
          GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                PRDE_UID,
                                PRDE_DATDEBMVT,
                                PRDE_DATFINMVT),
          PRDE_UID)
          ABSENCEACCIDENT,
       PKG_GRH_MVT.GRH_MVT_ISFORMATION (
          V_DATCPT,
          EMPY_UID,
          GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                PRDE_UID,
                                PRDE_DATDEBMVT,
                                PRDE_DATFINMVT),
          PRDE_UID)
          NBRFORMATION,
       PKG_GRH_MVT.GRH_MVT_ISABSENCEMISEENDISPO (V_DATCPT, EMPY_UID)
          ABSENCEMISEENDISPO,
       PKG_GRH_MVT.GRH_MVT_ISABSENCESOUSDRAPEAU (V_DATCPT, EMPY_UID)
          ABSENCESOUSDRAPEAU,
       PKG_GRH_MVT.GRH_MVT_ISABSENCECNGSANSSOLDE (
          V_DATCPT,
          EMPY_UID,
          GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                PRDE_UID,
                                PRDE_DATDEBMVT,
                                PRDE_DATFINMVT),
          PRDE_UID)
          ABSENCECNGSANSSOLDE,
       PKG_GRH_MVT.GRH_MVT_ISABSENCEENTREE (V_DATCPT, EMPY_UID) ABSENCEENTREE,
       PKG_GRH_MVT.GRH_MVT_ISABSENCEDEPART (V_DATCPT, EMPY_UID) ABSENCEDEPART,
       PKG_GRH_MVT.GRH_MVT_ISCONGEANN (V_DATCPT,
                                       EMPY_UID,
                                       GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                                             PRDE_UID,
                                                             PRDE_DATDEBMVT,
                                                             PRDE_DATFINMVT),
                                       PRDE_UID)
          CNGANN,
       PKG_GRH_MVT.GRH_MVT_ISFERIER (V_DATCPT,
                                     EMPY_UID,
                                     GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                                           PRDE_UID,
                                                           PRDE_DATDEBMVT,
                                                           PRDE_DATFINMVT),
                                     PRDE_UID)
          FERIER,
       PKG_GRH_MVT.GRH_MVT_ISAUTRE (V_DATCPT,
                                    EMPY_UID,
                                    GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                                          PRDE_UID,
                                                          PRDE_DATDEBMVT,
                                                          PRDE_DATFINMVT),
                                    PRDE_UID)
          AUTRE,
       PKG_GRH_MVT.GRH_MVT_ISREPOS (V_DATCPT,
                                    EMPY_UID,
                                    GRH_MVT_EXISTANCEPTG (EMPY_UID,
                                                          PRDE_UID,
                                                          PRDE_DATDEBMVT,
                                                          PRDE_DATFINMVT),
                                    PRDE_UID)
          REPOS,
       PKG_GRH_CNG.GRH_CNG_ISJOURREPOSHEB (V_DATCPT, EMPY_UID)
          V_JOURREPOSHEB,
       PKG_GRH_CNG.GRH_CNG_ISJOUROEUVRET (V_DATCPT, EMPY_UID)   V_JOUROEUVRET,
       PKG_PRM_GLOBAL.PRM_ISJOURFERIER (V_DATCPT)               V_JOURFERIER
  FROM test1

1 个答案:

答案 0 :(得分:2)

使用DBMS_MVIEW.EXPLAIN_MVIEW()来了解如何使用该实例化视图。

从文档中

  

此过程使您可以了解实例化视图或潜在实例化视图的可能。例如,您可以确定实例化视图是否可以快速刷新,以及可以对特定的实例化视图执行哪种类型的查询重写。