Materialized view fast refresh or complete refresh?

Hi Guys,
Need help here.
We were ask to provide recommendation regarding the replication of our Production schema to Reporting Schema.
Here are the conditions:
1. Production schema and Reporting schema resides in one database server, only in different instance.
2. Tables to replicate is more or less 300 tables.
3. They only want to replicate changes that happen on the table on the said day.(insert,update)
4. Replication will only happen on the end of business hours(end of day).
What we have in mind is Materialized view.
What would be best to use, fast refresh or complete refresh?
What will be the effect on performance?Resources?
Or will there be any other method?
Appreciate your reply on this.
Thanks,
Nina

Using MV (Materialized views) is onle of the possible way how to do what you are asked for.
Fast refresh of MV is faster than complete refresh because it's based on "deltas" from last refresh. But it require MV log on table in primary DB. This MVLog consume same space in tablespace. And maintainig this MVlog during DML operation on table add some overhead to DML operation -> it's take a little bit longer time to complete.
How much space is consumend by MV log depends on many factors:
1/ number of DML changes on table
2/ number of consumers (there can be more than on MV based on same table using same MV log)
3/ period of MV refresh
Plus of using MV is that it is very simple and you don't need no special license to use them.
Other possible option is Golden gate (Streams previously)
Next option is procedural replication - you have to write your own replication mechanism.

Similar Messages

  • Materialized View Initial Creation vs Complete Refresh - MAJOR differences

    Hi All,
    I am currently in the process of setting up MV's for replication via a DBLink and have noticed something that I find quite odd. Basically If I create an MV I get v. large differences than when I do a complete refresh on the same MV after the initial "load". Actual stats are shown below :
    Action TimeTaken Undo Reqd (Bytes)
    Initial Load 00:01:07     37254998
    Complete Refresh     00:02:41     463919012
    Question is why does a complete refresh require 12x the amount of Undo than the creation of the MV? I though tit would be roughly the same or at most twice as much?
    The Instance is only being used by myself so no other processes are causing this difference and this can be reproduced. Undo calculated from V$ROLLSTAT.
    Thanks
    MH

    Hi tekicora,
    Thanks for your help and suggestions. I have tried this method of evaluating UNDO with the following results:
    STATISTIC# NAME SID VALUE
    176 undo change vector size 115 132
    CREATE MATERIALIZED VIEW mytest1
    TABLESPACE TABSPACEA NOLOGGING BUILD IMMEDIATE
    USING INDEX TABLESPACE TABSPACEB REFRESH FORCE WITH ROWID ON DEMAND AS
    select * from ptable@remdb;
    STATISTIC# NAME SID VALUE
    176 undo change vector size 115 332860
    exec DBMS_MVIEW.REFRESH('MYTEST1', 'C',ATOMIC_REFRESH=>TRUE);
    STATISTIC# NAME SID VALUE
    176 undo change vector size 115 261460092
    exec DBMS_MVIEW.REFRESH('MYTEST1', 'C',ATOMIC_REFRESH=>FALSE);
    STATISTIC# NAME SID VALUE
    176 undo change vector size 115 272282756
    This is still creating masses of undo (particulalry atomic refresh). Could this be because mv table source is on a remote db?
    Thanks
    Mark H
    Message was edited by:
    markyb0y

  • Oracle 9i Rel2 Materialized View Fast refresh

    Hi,
    I have created materialized view with join and aggregation of four tables.
    For complete refresh it takes 30 minutes, but for a fast
    refresh it is taking 4 hours.
    Why this much time it should take for a fast refresh.
    Any suggestions will be highly helpful
    Regards
    Paddy
    The following are the scripts
    CREATE MATERIALIZED VIEW LOG ON RISK_REPORT_CACHE_1 TABLESPACE FLASH_DATA_M
    WITH SEQUENCE, ROWID
    ( VALUE_DATE, IS_OFFICIAL, POSID,
    REF_TYPE, REF_ID, INDUSTRY,
    COUNTRY, RATING, RANKING,
    DESCRIPTION, TICKER, SENDER,
    BOOK, CENTER, CURR,
    RISKTYPE, TENOR, SENSI,
    NOTIONAL, FXRATE, OECDFACTOR,
    MSFACTOR, EMFACTOR, MKTVAL,
    PARAMT, ISSR_RISK, AGE,
    ACQ_DATE, SYS_BOOK, EXCLUDED,
    REF_FLASH_ID, ENTITY_ID, PARENT_ENTITY_ID,
    YELLOW_KEY, PARENT_DESC, STRESS,
    VOLAT, PRD_TYPE, POS_DESC,
    BBG_INDUSTRY_SECTOR, BBG_INDUSTRY_GROUP, COUNTRY_RATING
    ) INCLUDING NEW VALUES ;
    PROMPT TO CREATE THE MV LOG ON FLASH_COUNTRY
    CREATE MATERIALIZED VIEW LOG ON FLASH_COUNTRY TABLESPACE FLASH_DATA_M
    WITH SEQUENCE, ROWID
    ( ISO , COUNTRY , CURRENCY,
    MF_CONSOL, ENTITY_ID, REGION
    ) INCLUDING NEW VALUES ;
    PROMPT TO CREATE THE MV LOG ON PF_HIERARCHY_CACHE
    CREATE MATERIALIZED VIEW LOG ON PF_HIERARCHY_CACHE TABLESPACE FLASH_DATA_M
    WITH SEQUENCE, ROWID
    ID_1 , NAME_1 , DESC_1 , PERM_1 ,
    ID_2 , NAME_2 , DESC_2 , PERM_2 ,
    ID_3 , NAME_3 , DESC_3 , PERM_3 ,
    ID_4 , NAME_4 , DESC_4 , PERM_4 ,
    ID_5 , NAME_5 , DESC_5 , PERM_5 ,
    ID_6 , NAME_6 , DESC_6 , PERM_6 ,
    ID_7 , NAME_7 , DESC_7 , PERM_7 ,
    ID_8 , NAME_8 , DESC_8 , PERM_8 ,
    ID_9 , NAME_9 , DESC_9 , PERM_9 ,
    ID_10 , NAME_10, DESC_10, PERM_10,
    SYSTEM, BOOK , SYS_BOOK, MAX_LVL,
    LAST_UPDATED
    ) INCLUDING NEW VALUES ;
    PROMPT TO CREATE THE MV LOG ON MAP_PRDTYPE_TO_DEALTYPE
    CREATE MATERIALIZED VIEW LOG ON MAP_PRDTYPE_TO_DEALTYPE TABLESPACE FLASH_DATA_M
    WITH SEQUENCE, ROWID
    ( PRD_TYPE, DEAL_TYPE
    ) INCLUDING NEW VALUES ;
    PROMPT TO CREATE THE MATERIALIZED VIEW
    PROMPT MV_AGG_RISK_REPORT_CACHE_SBOOK
    CREATE MATERIALIZED VIEW MV_AGG_RISK_REPORT_CACHE_SBOOK
    TABLESPACE FLASH_DATA_M
    PARALLEL
    PARTITION BY RANGE(VALUE_DATE)
    (PARTITION P20040113 VALUES LESS THAN (TO_DATE(' 2004-01-14 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040227 VALUES LESS THAN (TO_DATE(' 2004-02-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040304 VALUES LESS THAN (TO_DATE(' 2004-03-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040305 VALUES LESS THAN (TO_DATE(' 2004-03-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040306 VALUES LESS THAN (TO_DATE(' 2004-03-07 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040307 VALUES LESS THAN (TO_DATE(' 2004-03-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040308 VALUES LESS THAN (TO_DATE(' 2004-03-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040309 VALUES LESS THAN (TO_DATE(' 2004-03-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040310 VALUES LESS THAN (TO_DATE(' 2004-03-11 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040311 VALUES LESS THAN (TO_DATE(' 2004-03-12 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040312 VALUES LESS THAN (TO_DATE(' 2004-03-13 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040313 VALUES LESS THAN (TO_DATE(' 2004-03-14 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040314 VALUES LESS THAN (TO_DATE(' 2004-03-15 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040315 VALUES LESS THAN (TO_DATE(' 2004-03-16 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040316 VALUES LESS THAN (TO_DATE(' 2004-03-17 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040317 VALUES LESS THAN (TO_DATE(' 2004-03-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040318 VALUES LESS THAN (TO_DATE(' 2004-03-19 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040319 VALUES LESS THAN (TO_DATE(' 2004-03-20 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040320 VALUES LESS THAN (TO_DATE(' 2004-03-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040321 VALUES LESS THAN (TO_DATE(' 2004-03-22 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040322 VALUES LESS THAN (TO_DATE(' 2004-03-23 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040323 VALUES LESS THAN (TO_DATE(' 2004-03-24 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040324 VALUES LESS THAN (TO_DATE(' 2004-03-25 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040325 VALUES LESS THAN (TO_DATE(' 2004-03-26 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040326 VALUES LESS THAN (TO_DATE(' 2004-03-27 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040327 VALUES LESS THAN (TO_DATE(' 2004-03-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040328 VALUES LESS THAN (TO_DATE(' 2004-03-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040329 VALUES LESS THAN (TO_DATE(' 2004-03-30 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040330 VALUES LESS THAN (TO_DATE(' 2004-03-31 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040331 VALUES LESS THAN (TO_DATE(' 2004-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040401 VALUES LESS THAN (TO_DATE(' 2004-04-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040402 VALUES LESS THAN (TO_DATE(' 2004-04-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040403 VALUES LESS THAN (TO_DATE(' 2004-04-04 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040404 VALUES LESS THAN (TO_DATE(' 2004-04-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040405 VALUES LESS THAN (TO_DATE(' 2004-04-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040406 VALUES LESS THAN (TO_DATE(' 2004-04-07 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040407 VALUES LESS THAN (TO_DATE(' 2004-04-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040408 VALUES LESS THAN (TO_DATE(' 2004-04-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040409 VALUES LESS THAN (TO_DATE(' 2004-04-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040410 VALUES LESS THAN (TO_DATE(' 2004-04-11 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040411 VALUES LESS THAN (TO_DATE(' 2004-04-12 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040412 VALUES LESS THAN (TO_DATE(' 2004-04-13 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040413 VALUES LESS THAN (TO_DATE(' 2004-04-14 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040414 VALUES LESS THAN (TO_DATE(' 2004-04-15 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040415 VALUES LESS THAN (TO_DATE(' 2004-04-16 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040416 VALUES LESS THAN (TO_DATE(' 2004-04-17 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040417 VALUES LESS THAN (TO_DATE(' 2004-04-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040418 VALUES LESS THAN (TO_DATE(' 2004-04-19 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040419 VALUES LESS THAN (TO_DATE(' 2004-04-20 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040420 VALUES LESS THAN (TO_DATE(' 2004-04-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040421 VALUES LESS THAN (TO_DATE(' 2004-04-22 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M
    BUILD IMMEDIATE
    USING INDEX TABLESPACE FLASH_INDX_M
    REFRESH FAST ON DEMAND
    ENABLE QUERY REWRITE
    AS
    SELECT
    RRC.VALUE_DATE VALUE_DATE,
    PHC.NAME_4 NAME_4,
    PHC.NAME_5 NAME_5,
    PHC.NAME_6 NAME_6,
    PHC.NAME_7 NAME_7,
    PHC.BOOK BOOK,
    PHC.SYS_BOOK SYS_BOOK,
    RRC.CURR CURR,
    RRC.INDUSTRY INDUSTRY,
    RRC.BBG_INDUSTRY_GROUP BBG_INDUSTRY_GROUP,
    RRC.BBG_INDUSTRY_SECTOR BBG_INDUSTRY_SECTOR,
    RRC.COUNTRY COUNTRY,
    FC.REGION REGION,
    RRC.COUNTRY_RATING COUNTRY_RATING,
    RRC.RISKTYPE RISKTYPE,
    RRC.TENOR TENOR,
    RRC.TICKER TICKER,
    RRC.DESCRIPTION DESCRIPTION,
    RRC.RATING RATING,
    RRC.FXRATE FXRATE,
    RRC.POS_DESC POS_DESC,
    MPTD.DEAL_TYPE DEAL_TYPE,
    SUM(PHC.MAX_LVL) MAX_LVL,
    COUNT(PHC.MAX_LVL) PHC_seqnum,
    COUNT(*) CNT,
    SUM(DECODE(RRC.RISKTYPE,
    'GOVT',SENSI,0)) GOVT_DELTA ,
    SUM(DECODE(RRC.RISKTYPE,
    'LIBOR',SENSI,0)) LIBOR_DELTA,
    SUM(DECODE(RRC.RISKTYPE,
    'CREDIT',SENSI,0)) CREDIT_DELTA,
    SUM(DECODE(RRC.RISKTYPE,
    'GOVT',SENSI,
    'LIBOR',SENSI,0)) MARKET_DELTA,
    SUM(DECODE(RRC.RISKTYPE,
    'GOVT',STRESS,0)) GOVT_STRESS,
    SUM(DECODE(RRC.RISKTYPE,
    'LIBOR',STRESS,0)) LIBOR_STRESS,
    SUM(DECODE(RRC.RISKTYPE,
    'CREDIT',STRESS,0)) CREDIT_STRESS,
    SUM(DECODE(RRC.RISKTYPE,
    'GOVT',STRESS,
    'LIBOR',STRESS,0)) MARKET_STRESS,
    SUM(DECODE(RRC.RISKTYPE,
    'GOVT',STRESS,
    'LIBOR',STRESS,
    'CREDIT',STRESS,0)) TOTAL_STRESS,
    SUM(VOLAT) VOLAT,
    SUM(MKTVAL) MKTVAL,
    COUNT(DECODE(RRC.RISKTYPE,
    'GOVT',SENSI,0)) CNT_GOVT_DELTA ,
    COUNT(DECODE(RRC.RISKTYPE,
    'LIBOR',SENSI,0)) CNT_LIBOR_DELTA,
    COUNT(DECODE(RRC.RISKTYPE,
    'CREDIT',SENSI,0)) CNT_CREDIT_DELTA,
    COUNT(DECODE(RRC.RISKTYPE,
    'GOVT',SENSI,
    'LIBOR',SENSI,0)) CNT_MARKET_DELTA,
    COUNT(DECODE(RRC.RISKTYPE,
    'GOVT',STRESS,0)) CNT_GOVT_STRESS,
    COUNT(DECODE(RRC.RISKTYPE,
    'LIBOR',STRESS,0)) CNT_LIBOR_STRESS,
    COUNT(DECODE(RRC.RISKTYPE,
    'CREDIT',STRESS,0)) CNT_CREDIT_STRESS,
    COUNT(DECODE(RRC.RISKTYPE,
    'GOVT',STRESS,
    'LIBOR',STRESS,0)) CNT_MARKET_STRESS,
    COUNT(DECODE(RRC.RISKTYPE,
    'GOVT',STRESS,
    'LIBOR',STRESS,
    'CREDIT',STRESS,0)) CNT_TOTAL_STRESS,
    COUNT(VOLAT) CNT_VOLAT,
    COUNT(MKTVAL) CNT_MKTVAL
    FROM RISK_REPORT_CACHE_1 RRC,
    FLASH_COUNTRY FC,
    PF_HIERARCHY_CACHE PHC,
    MAP_PRDTYPE_TO_DEALTYPE MPTD
    WHERE RRC.SYS_BOOK = PHC.SYS_BOOK
    AND RRC.COUNTRY = FC.COUNTRY
    AND PHC.NAME_1 = 'MRC - FIRC III'
    AND PHC.NAME_2 = 'Fixed Income'
    AND PHC.NAME_3 = 'Investment Grade, High Yield and Emerging Markets'
    AND MPTD.PRD_TYPE = RRC.PRD_TYPE
    GROUP BY      
    RRC.VALUE_DATE,
    PHC.NAME_4,
    PHC.NAME_5,
    PHC.NAME_6,
    PHC.NAME_7,
    PHC.BOOK,
    PHC.SYS_BOOK,
    RRC.CURR,
    RRC.INDUSTRY,
    RRC.BBG_INDUSTRY_GROUP,
    RRC.BBG_INDUSTRY_SECTOR,
    RRC.COUNTRY,
    FC.REGION,
    RRC.COUNTRY_RATING,
    RRC.RISKTYPE,
    RRC.TENOR,
    RRC.TICKER,
    RRC.DESCRIPTION,
    RRC.RATING,
    RRC.FXRATE,
    RRC.POS_DESC,
    MPTD.DEAL_TYPE;
    PROMPT TO CREATE THE MV LOG ON MV_AGG_RISK_REPORT_CACHE_SBOOK
    CREATE MATERIALIZED VIEW LOG ON MV_AGG_RISK_REPORT_CACHE_SBOOK TABLESPACE FLASH_DATA_M
    WITH ROWID
    ( VALUE_DATE , NAME_4 , NAME_5 , NAME_6,
    NAME_7 , BOOK , SYS_BOOK , CURR,
    INDUSTRY , BBG_INDUSTRY_GROUP, BBG_INDUSTRY_SECTOR, COUNTRY,
    COUNTRY_RATING , RISKTYPE , TENOR , TICKER,
    DESCRIPTION , RATING , FXRATE , DEAL_TYPE,
    GOVT_DELTA , LIBOR_DELTA , CREDIT_DELTA , MARKET_DELTA,
    GOVT_STRESS , LIBOR_STRESS , CREDIT_STRESS , MARKET_STRESS,
    TOTAL_STRESS , VOLAT , MKTVAL , REGION,
    MAX_LVL , PHC_SEQNUM , CNT_GOVT_DELTA , CNT_LIBOR_DELTA,
    CNT_CREDIT_DELTA , CNT_MARKET_DELTA , CNT_GOVT_STRESS , CNT_LIBOR_STRESS,
    CNT_CREDIT_STRESS, CNT_MARKET_STRESS , CNT_TOTAL_STRESS , CNT_VOLAT,
    CNT_MKTVAL
    ) INCLUDING NEW VALUES ;
    PROMPT TO CREATE THE MATERIALIZED VIEW
    PROMPT MV_AGG_SBOOK_VALUEDATE
    CREATE MATERIALIZED VIEW MV_AGG_SBOOK_VALUEDATE
    TABLESPACE FLASH_DATA_M
    PARALLEL
    PARTITION BY RANGE(VALUE_DATE)
    (PARTITION P20040113 VALUES LESS THAN (TO_DATE(' 2004-01-14 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040227 VALUES LESS THAN (TO_DATE(' 2004-02-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040304 VALUES LESS THAN (TO_DATE(' 2004-03-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040305 VALUES LESS THAN (TO_DATE(' 2004-03-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040306 VALUES LESS THAN (TO_DATE(' 2004-03-07 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040307 VALUES LESS THAN (TO_DATE(' 2004-03-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040308 VALUES LESS THAN (TO_DATE(' 2004-03-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040309 VALUES LESS THAN (TO_DATE(' 2004-03-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040310 VALUES LESS THAN (TO_DATE(' 2004-03-11 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040311 VALUES LESS THAN (TO_DATE(' 2004-03-12 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040312 VALUES LESS THAN (TO_DATE(' 2004-03-13 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040313 VALUES LESS THAN (TO_DATE(' 2004-03-14 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040314 VALUES LESS THAN (TO_DATE(' 2004-03-15 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040315 VALUES LESS THAN (TO_DATE(' 2004-03-16 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040316 VALUES LESS THAN (TO_DATE(' 2004-03-17 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040317 VALUES LESS THAN (TO_DATE(' 2004-03-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040318 VALUES LESS THAN (TO_DATE(' 2004-03-19 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040319 VALUES LESS THAN (TO_DATE(' 2004-03-20 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040320 VALUES LESS THAN (TO_DATE(' 2004-03-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040321 VALUES LESS THAN (TO_DATE(' 2004-03-22 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040322 VALUES LESS THAN (TO_DATE(' 2004-03-23 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040323 VALUES LESS THAN (TO_DATE(' 2004-03-24 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040324 VALUES LESS THAN (TO_DATE(' 2004-03-25 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040325 VALUES LESS THAN (TO_DATE(' 2004-03-26 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040326 VALUES LESS THAN (TO_DATE(' 2004-03-27 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040327 VALUES LESS THAN (TO_DATE(' 2004-03-28 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040328 VALUES LESS THAN (TO_DATE(' 2004-03-29 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040329 VALUES LESS THAN (TO_DATE(' 2004-03-30 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040330 VALUES LESS THAN (TO_DATE(' 2004-03-31 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040331 VALUES LESS THAN (TO_DATE(' 2004-04-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040401 VALUES LESS THAN (TO_DATE(' 2004-04-02 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040402 VALUES LESS THAN (TO_DATE(' 2004-04-03 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040403 VALUES LESS THAN (TO_DATE(' 2004-04-04 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040404 VALUES LESS THAN (TO_DATE(' 2004-04-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040405 VALUES LESS THAN (TO_DATE(' 2004-04-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040406 VALUES LESS THAN (TO_DATE(' 2004-04-07 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040407 VALUES LESS THAN (TO_DATE(' 2004-04-08 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040408 VALUES LESS THAN (TO_DATE(' 2004-04-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040409 VALUES LESS THAN (TO_DATE(' 2004-04-10 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040410 VALUES LESS THAN (TO_DATE(' 2004-04-11 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040411 VALUES LESS THAN (TO_DATE(' 2004-04-12 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040412 VALUES LESS THAN (TO_DATE(' 2004-04-13 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040413 VALUES LESS THAN (TO_DATE(' 2004-04-14 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040414 VALUES LESS THAN (TO_DATE(' 2004-04-15 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040415 VALUES LESS THAN (TO_DATE(' 2004-04-16 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040416 VALUES LESS THAN (TO_DATE(' 2004-04-17 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040417 VALUES LESS THAN (TO_DATE(' 2004-04-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040418 VALUES LESS THAN (TO_DATE(' 2004-04-19 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040419 VALUES LESS THAN (TO_DATE(' 2004-04-20 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040420 VALUES LESS THAN (TO_DATE(' 2004-04-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M,
    PARTITION P20040421 VALUES LESS THAN (TO_DATE(' 2004-04-22 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
    TABLESPACE FLASH_DATA_M
    BUILD IMMEDIATE
    USING INDEX TABLESPACE FLASH_INDX_M
    REFRESH FAST ON DEMAND
    ENABLE QUERY REWRITE
    AS
    SELECT
    VALUE_DATE,
    NAME_4,
    NAME_5,
    NAME_6,
    NAME_7,
    BOOK,
    SYS_BOOK,
    FXRATE,
    COUNT(*) CNT,
    SUM(GOVT_DELTA) GOVT_DELTA,
    SUM(LIBOR_DELTA) LIBOR_DELTA,
    SUM(CREDIT_DELTA) CREDIT_DELTA,
    SUM(MARKET_DELTA) MARKET_DELTA,
    SUM(GOVT_STRESS) GOVT_STRESS,
    SUM(LIBOR_STRESS) LIBOR_STRESS,
    SUM(CREDIT_STRESS) CREDIT_STRESS,
    SUM(MARKET_STRESS) MARKET_STRESS,
    SUM(TOTAL_STRESS) TOTAL_STRESS,
    SUM(MKTVAL) MKTVAL,
    COUNT(GOVT_DELTA) CNT_GOVT_DELTA,
    COUNT(LIBOR_DELTA) CNT_LIBOR_DELTA,
    COUNT(CREDIT_DELTA) CNT_CREDIT_DELTA,
    COUNT(MARKET_DELTA) CNT_MARKET_DELTA,
    COUNT(GOVT_STRESS) CNT_GOVT_STRESS,
    COUNT(LIBOR_STRESS) CNT_LIBOR_STRESS,
    COUNT(CREDIT_STRESS) CNT_CREDIT_STRESS,
    COUNT(MARKET_STRESS) CNT_MARKET_STRESS,
    COUNT(TOTAL_STRESS) CNT_TOTAL_STRESS,
    COUNT(MKTVAL) CNT_MKTVAL
    FROM
    MV_AGG_RISK_REPORT_CACHE_SBOOK
    GROUP BY      
    VALUE_DATE,
    NAME_4,
    NAME_5,
    NAME_6,
    NAME_7,
    BOOK,
    SYS_BOOK,
    FXRATE;

    "fast" is a bit of a misnomer-- it is really an incremental refresh. Every change to the base table is recorded and propagated to the materialized view. The problem is that if every row changes, Oracle has to process a whole lot of increments, one by one. If it does a complete refresh, on the other hand, it can do set-wise operations, which is what the Oracle database is designed to do most efficiently.
    In your case, the choice is between applying 24,000 change records (12,000 DELETE's followed by 12,000 INSERT's) in order or reading the 12,000 new rows as a set. It will be much faster for Oracle to do the latter.
    It may be possible to tune the incremental refresh, depending upon how the base table is deleted and refreshed, but it will never be as fast as a complete refresh (unless you stop reloading the base table).
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Materialized view fast refresh ...getting ORA-22992: error

    Hi All,
    Oracle version 11.1.0.7
    While creating a materialized view(Fast refresh) on remote tables ... i am getting the ORA-22992: cannot use LOB locators selected from remote tables ... error.
    but the actual scenario is... i am not selecting any of the BLOB/LOB columns from the remote tables. I did n't include them in my materialized query.
    I am able to refresh it complete but couldn't refresh it fast. Here i want to mention other thing... when ever i have records in Mat view log(Base table has a blob cloumns in it)
    i am getting the above error. when no record in the Mat view log(i.e on BLOB base table) .. i can able to refresh it as FAST.
    MV_CAPABILITIES table tells that ...My Mat view is able to refresh it FAST.I don't know howw to approach to solve this issue.could some one tell me the approach..to solve it?
    Here is the sample code ....this is what i have done so fat
    session 1 (REMOTE_ONE)
    I have created synonyms for the remote tables on current schema. That's why i didn't include @DBLINK.
    create table RT_A ( col1_A varchar2(20), col2_A BLOB,COL3_A NUMBER);
    create a table RT_B (COl1_B varchar2(20), col2_B BLOB, COL3_B NUMBER);
    create a table RT_C (COL1_C varchar2(20), col2_C VARCHAR2,COL3_C NUMBER);
    create  MATERIALIZED VIEW LOG ON RT_A 
    WITH  ROWID EXCLUDING NEW VALUES;
    create  MATERIALIZED VIEW LOG ON RT_B
    WITH  ROWID EXCLUDING NEW VALUES;
    create  MATERIALIZED VIEW LOG ON RT_C 
    WITH  ROWID EXCLUDING NEW VALUES;
    grant select on RT_A to CUURRENT_ONE with grant option;
    grant select on RT_B to CUURRENT_ONE with grant option;
    grant select on RT_C to CUURRENT_ONE with grant option;
    grant select on MLOG$_RT_A to CUURRENT_ONE with grant option;
    grant select on MLOG$_RT_B to CUURRENT_ONE with grant option;
    grant select on MLOG$_RT_C to CUURRENT_ONE with grant option;Session 2 (CUURRENT_ONE)
    create materialized view ABC_MV
    BUILD IMMEDIATE REFRESH FORCE ON DEMAND START WITH SYSDATE NEXT SYSDATE+1
    AS
    select A.ROWID AS A_ROWID,
    B.ROWID as B_ROWID,
    C.ROWID AS C_ROWID,
    A.COL1_A,
    B.col1_B,
    c.col1_c
    from RT_A, RT_B,RT_C
    where COL3_A = COL3_B(+)
    and COL3_B = COL3_C(+)Appreciate your help.
    Thanks,
    Mike

    Thanks for the reply
    In that he/she is selecting the LOB column from the remote database(master site).
    I am just referencing the table which has BLOB column in it.I am not referencing any LOB column in my select(Mat view) query...
    is there anything i need to check..?
    Regards,
    Mike

  • Materialized view fast refresh with date field

    I have a situation where I need to create a materialized view worth of 6 months of data with fast refresh option from the master table. Somehow whenever I have the where clause added with the date field then it craps out with "ORA-12015: cannot create a fast refresh materialized view from a complex query".
    Here is what I am trying to do. Please let me know if there is any other way to accomplish this.
    create table test (id number, date_time DATE);
    CREATE MATERIALIZED VIEW LOG ON test WITH ROWID;
    CREATE MATERIALIZED VIEW cms.scoreboard_statistics_mv
    BUILD IMMEDIATE
    REFRESH FAST
    WITH ROWID
    AS
    SELECT * from test
    WHERE date_time >= sysdate - 180;
    ORA-12015: cannot create a fast refresh materialized view from a complex query
    Thanks,
    Raj

    It's crazy but a new time Metalink help us into the Note:179466.1
    The restrictions that prevent snapshots from being fast refreshed depend on
    the version of Oracle being used, a full list of these by version is included
    in section 3. In all cases the snapshot defining query should:
    - refer to fully qualified table names rather than to partial table names.
    - refer to remote tables only, not to remote master views or synonyms.
    - not generate context sensitive data. For example, do not create a simple
    snapshot with a query that uses the SQL functions :SYSDATE, UID or USER.

  • Materialized view - fast refresh not working on joins

    Hello,
    Is it true that fast refresh for materialized view is not possible when I do a union of 2 tables, although both tables have materialized view logs ?

    there are a number of restrictions with fast refresh, read Materialized View Fast Refresh Restrictions and ORA-12052 [ID 222843.1]
    edit: his royal kyteness has posted on this before
    http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:6506967884606
    Edited by: deebee_eh on Apr 25, 2012 3:13 PM

  • Materialized view - fast refresh logs

    I understand that there will be a Change Data Capture(CDC) log maintained internally for materialized view fast refresh to happen.
    My question is, will this log get purged once the changes are applied to corresponding materialized view or will it persist with further changes getting appended to it ?
    What would be the size of change log for 150 million records covering 40 base tables ?

    MV log entries are deleted when all registered materialized views that depend on them have refreshed.
    For example: Suppose you have a table T and materialized views A and B that are fast-refresh and depend on the MV log for T.
    On Monday you refresh MV A. The log entries are nto purged because B has not yet incorporated them.
    On Tuesday you refresh MV B. At this point the log entries are purged up to the time on Monday that A was refreshed, because all MVs have processed them.
    On Wednesday you refresh MV A again. At this point the log entries are purged up to the time on Tuesday that A was refreshed. etc.

  • Is it possible to create materialized view log file for force refresh

    Is it possible to create materialized view log file for force refresh with join condition.
    Say for example:
    CREATE MATERIALIZED VIEW VU1
    REFRESH FORCE
    ON DEMAND
    AS
    SELECT e.employee_id, d.department_id from emp e and departments d
    where e.department_id = d.department_id;
    how can we create log file using 2 tables?
    Also am copying M.View result to new table. Is it possible to have the same values into the new table once the m.view get refreshed?

    You cannot create a record as a materialized view within the Application Designer.
    But there is workaround.
    Create the record as a table within the Application Designer. Don't build it.
    Inside your database, create the materialized with same name and columns as the record created previously.
    After that, you'll be able to work on that record as for all other within the Peoplesoft tools.
    But keep in mind do never build that object, that'll drop your materialized view and create a table instead.
    Same problem exists for partitioned tables, for function based-indexes and some other objects database vendor dependant. Same workaround is used.
    Nicolas.

  • Materialized view does not exist upon refresh

    Hi all,
    I got the following stack trace upon executing 'DBMS_MVIEW.REFRESH('Layout_tab','C')' to refresh an materialized view upon an object table:
    ORA-23401: materialized view "MINIMOL"."LAYOUT_TAB" does not exist
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 794
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 851
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 832
    The view create statement is following:
    CREATE MATERIALIZED VIEW PlateLayout_tab
    OF PlateLayout
    CACHE
    REFRESH ON DEMAND
    AS
    SELECT
    PlateLayout(l.id,VALUE(pos),l.ComputeCheckerboardPosition(VALUE(pos)))
    FROM
    Layout_tab l
    , TABLE(mcu_enumerate.LoopFor(1,l.wells_across * l.wells_down)) pos;
    now what is going wrong? I can't even create the view with the 'REFRESH ON COMMIT' option.
    Thanks,
    Henrik

    John,
    it is only a typo in the posted message, but the executed SQL-smt of course was:
    EXECUTE DBMS_MVIEW.REFRESH('PlateLayout_tab','C');
    After browsing through metalink I even tried this:
    EXECUTE DBMS_MVIEW.REFRES('PlateLayout_tab','C','',TRUE,FALSE,0,0,0,TRUE);
    with the same stack trace.
    By the way the MVIEW is accessible via:
    SELECT * FROM PlateLayout_tab
    Thanks,
    Henrik

  • Materialized View Fast Refresh been ignored For Complete refresh.

    Hi,
    I have a script that create a materialised view with a refresh method of 'FAST'.
    When I refresh the view on one machine it refreshes using the 'FAST' method (i.e. LAST_REFRESH_TYPE = FAST) in 22 seconds, however, when I run the same script on a different machine the database chooses a 'COMPLETE' refresh method, despite me stating explicitly for it to use the FAST method. The complete refresh completes in about four hours.
    Does anyone know the logic that Oracle uses in determining the type of refresh to use?
    Thanks.

    Assuming that the Materialized View definition is the same (and doesn't conflict with any FAST REFRESH requirements for that specific Oracle Version), check to see if the source table(s) has/have Materialized View Logs defined on them. MV Logs with PK/Rowid would be required.
    Hemant K Chitale

  • Materialized View fast refresh problems

    I have two databases (A and B).
    In database A, user NICK has a table called COLOUR_MASTER.
    Also in that database, NICK issues the command create materialized view log on colour_master with primary key including new values (and yes, there is a primary key defined for this table)
    In database B, there is a database link called A_LINK, connect to nick identified by password using 'dbA';
    Also in database B, user IAN creates a materialized view CM_MV refresh fast as select * from colour_master@A_LINK
    That statement completes successfully, and there are several million rows in CM_MV when it's done.
    Immediately, IAN issues this command:
    begin
    dbms_mview.refresh('CM_MV');
    end;
    ...and after a slight pause, he gets the error
    ORA-12008: error in materialized view refresh path
    ORA-02068: following sever error from A_LINK
    ORA-03113: end-of-file on communication channel
    Yet a +'select count(*) from colour_master@A_LINK'+ submitted immediately manages to return the correct number of records in database A -so that 3113 is a bit misleading, I think, in that instance A did not crash, the database remains accessible at all times, there are no networking issues (database A and B are both located in the same server room, so this isn't like I'm trying to connect half way round the globe).
    The only thing I can think of is that there's a permissions problem causing this error. That because the MV creation is done via a link, there's no problem in IAN seeing the appropriate objects, but that once refreshes come into play, maybe there is.
    Can anyone shed any light on why I can't do the fast refresh of the view I can happily create, please?

    I'm surprised that no-one has asked you to do the obvious: try doing a select * from colour_master@A_LINK, without that being wrapped up in a create materialized view statment. Just do a plain select * from...
    My bet is that you'll get an ORA_22992 cannot use LOB locators selected from remote tables error. And if you can't do a simple select * from a remote table, I suspect that you can reasonably expect fireworks when you try to create or refresh a materialized view on such a thing!
    Here's a quick test:
    In Database 1:
    =========
    SQL> create table A (col1 varchar2(2), col2 clob);
    Table created.
    SQL> alter table A add constraint A1 primary key (col1);
    Table altered.
    SQL> insert into A values ('AA','This is an entry into a clob column');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> create materialized view log on A with primary key including new values;
    Materialized view log created.In Database 2
    =========
    SQL> connect ims_global/v0yager1@ussd
    Connected.
    SQL> create materialized view B refresh fast as
      2  select * from A@remotedb_link;
    Materialized view created.
    SQL> exec dbms_mview.refresh('B');
    BEGIN dbms_mview.refresh('B'); END;
    ERROR at line 1:
    ORA-12008: error in materialized view refresh path
    ORA-02068: following severe error from REMOTEDB_LINK
    ORA-03113: end-of-file on communication channel
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2251
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2457
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2426
    ORA-06512: at line 1
    SQL> drop materialized view B;
    Materialized view dropped.
    SQL> create materialized view B refresh fast as
      2  select col1 from A@ims_link;
    Materialized view created.
    SQL> exec dbms_mview.refresh('B');
    PL/SQL procedure successfully completed.Which seems to replicate your problem rather well, I think.
    I don't know if there are any workarounds for this. I mean, obviously you can miss out the CLOB column in your 'create MV' statement as I just did, but I don't know whether you are even allowed or supposed to be able to create an MV on lob columns and that patch such-and-such will let you do it. Maybe someone else can provide that information.
    But at least you won't have to play Russian roulette with your init.ora parameters!

  • Materialized view fast refresh raising error ORA-12031

    Hi All,
    I have a table named TblA on A database. I have created mview name mviewTblA on database B.
    When I tried to Complete refresh on mviewTblA it is getting refresh but with fast refresh it is raising an error i.e ORA-12031: cannot use primary key columns from materialized view log on "NIMS"."PIPER_ENABLED_EXCHANGES" ORA-06512: at "SYS.DBMS_SNAPSHOT", line 794 ORA-06512: at "SYS.DBMS_SNAPSHOT", line 851 ORA-06512: at "SYS.DBMS_SNAPSHOT", line 832 ORA-06512: at line 2
    BEGIN
    DBMS_MVIEW.REFRESH('MVIEWTBLA','F');
    END;
    I checked with database "A", there is an materialized view log. Tell me how i can view/update that materialized view log i.e. want to see and confirm that materialized view log is created with primary key or not.
    Please suggest me on this.
    Message was edited by:
    user593684

    .. I use following code (from asktom.oracle.com) to check any limitations on mview
    variable x refcursor
    declare
    l_data EXPLAINMVARRAYTYPE;
    begin
    dbms_mview.explain_mview( '&MV_NAME', l_data );
    open :x for
    select capability_name, possible,
    msgno, msgtxt
    from table( cast( l_data as EXPLAINMVARRAYTYPE ) )
    order by seq;
    end;
    column msgtxt format a30 word_wrapped
    print x;

  • Materialized view (fast refresh mode) + Materialized view log on another DB

    Hi all,
    I created a materizalied view using this script :
    CREATE MATERIALIZED VIEW GIPS.DOSSIER_MEDICAL_MV2
    TABLESPACE GIPS_T
    NOCACHE
    NOLOGGING
    NOCOMPRESS
    NOPARALLEL
    BUILD IMMEDIATE
    USING INDEX
    TABLESPACE GIPS_I
    + REFRESH FAST ON DEMAND +
    START WITH TO_DATE('11-janv.-2011 16:00:00','dd-mon-yyyy hh24:mi:ss')
    NEXT sysdate (1/96)+
    AS
    SELECT N0_SEQ_BLOB_PDF,
    EXAM_ID,
    MPR,
    RSM,
    rub,
    date_deb,
    SPE,
    commentaire,
    SPR,
    MEP,
    MSJ,
    TTD,
    exam_type
    FROM DOSSIER_MEDICAL@dbdoc_lk
    WHERE DOSSIER_MEDICAL.EXAM_TYPE IN ('TELEM', 'SCANNER', 'EPPO_SECMED');
    So you can see I'm using a dblink in the select statement ( DBDOC_LK )
    On the DB referenced by this dblink, I created a materialized view log using this script :
    CREATE MATERIALIZED VIEW LOG ON "DOSMED"."DOSSIER_MEDICAL"
    TABLESPACE "DOC_T"
    WITH PRIMARY KEY
    INCLUDING NEW VALUES;
    The problem is that my materialized view has never refreshed since its creation ! and I don't understand why ?
    Can someone help me ?
    Thank you.

    The REFRESH schedule causes a job to be created for the execution of the Refresh. You should see this job in DBA_JOBS / USER_JOBS.
    The job would run only if the instance parameter JOB_QUEUE_PROCESSES is set to 1 or higher (the default is 0). This parameter can be modified dynamically with an ALTER SYSTEM command.
    Hemant K Chitale
    http://hemantoracledba.blogspot.com

  • Regarding Error in Materialized view Fast Refresh

    ORA-12015: cannot create a fast refresh materialized view from a complex query
    CREATE MATERIALIZED VIEW MVCONTENTHISTORY_01
    BUILD IMMEDIATE
    REFRESH FAST
    WITH PRIMARY KEY
    ENABLE QUERY REWRITE
    AS
    SELECT a.DAY, a.contentname,
    SUM
    (CASE
    WHEN (b.subscriptionstartdate) <= (a.DAY)
    AND ((CASE
    WHEN b.subscriptionenddate IS NOT NULL
    THEN (a.DAY)
    ELSE TO_DATE ('01/20/1990', 'MM/DD/YYYY')
    END
    ) <=
    (CASE
    WHEN b.subscriptionenddate IS NOT NULL
    THEN (b.subscriptionenddate)
    ELSE TO_DATE ('01/20/1990', 'MM/DD/YYYY')
    END
    THEN 1
    ELSE 0
    END
    ) COUNT,
    COUNT
    (CASE
    WHEN (b.subscriptionstartdate) <= (a.DAY)
    AND ((CASE
    WHEN b.subscriptionenddate IS NOT NULL
    THEN (a.DAY)
    ELSE TO_DATE ('01/20/1990', 'MM/DD/YYYY')
    END
    ) <=
    (CASE
    WHEN b.subscriptionenddate IS NOT NULL
    THEN (b.subscriptionenddate)
    ELSE TO_DATE ('01/20/1990', 'MM/DD/YYYY')
    END
    THEN 1
    ELSE 0
    END
    ) cnt
    FROM TBLTDATEWISECONTENT a,
    (SELECT TRUNC (a.subscriptionstartdate) subscriptionstartdate,
    TRUNC (a.subscriptionenddate) subscriptionenddate, b.NAME,
    b.contentid
    FROM syntbltcontentsubscrhistory a, syntblmcontent b
    WHERE b.contentid = a.contentid(+)) b
    WHERE a.contentid = b.contentid(+) AND a.DAY = b.subscriptionstartdate(+)
    GROUP BY a.contentname, a.DAY;
    I can't create Materialized view with fast Refresh .
    Kindly provide solution .
    Regards,
    nayana chavda.

    Kindly provide full Oracle version since option vary by release.
    There error message says it is impossible to fast refresh based on a complex query.
    On 10g Oracle provides a package procedure that will tell you why the view cannot be fast refreshed: dbms_mview.explain_mview.
    Otherwise see the Advanced Replication Manual for a list of restrictions.
    10gR2 >>Restrictions for Materialized Views with Subqueries
    The defining query of a materialized view with a subquery is subject to several restrictions to preserve the materialized view's fast refresh capability.
    The following are restrictions for fast refresh materialized views with subqueries:
    Materialized views must be primary key materialized views.
    The master's materialized view log must include certain columns referenced in the subquery. For information about which columns must be included, see "Logging Columns in the Materialized View Log".
    If the subquery is many to many or one to many, join columns that are not part of a primary key must be included in the materialized view log of the master. This restriction does not apply to many to one subqueries.
    The subquery must be a positive subquery. For example, you can use the EXISTS condition, but not the NOT EXISTS condition.
    The subquery must use EXISTS to connect each nested level (IN is not allowed).
    Each table can be in only one EXISTS expression.
    The join expression must use exact match or equality comparisons (that is, equi-joins).
    Each table can be joined only once within the subquery.
    A primary key must exist for each table at each nested level.
    Each nested level can only reference the table in the level above it.
    Subqueries can include AND conditions, but each OR condition can only reference columns contained within one row. Multiple OR conditions within a subquery can be connected with an AND condition.
    All tables referenced in a subquery must reside in the same master site or master materialized view site.
    <<
    HTH -- Mark D Powell --
    Message was edited by: added list of restrictions left off initial post
    mpowel01

  • Triggers on Materialized View Fast Refresh

    Hello all!
    I have a Materialized View defined as below:
    CREATE MATERIALIZED VIEW mxsvativi
    BUILD IMMEDIATE
    REFRESH FAST ON COMMIT
    WITH PRIMARY KEY
    AS
    SELECT codativ, TRIM (ramo) AS ramo, percdesc FROM tbativi;And, on this MV, I have a trigger declared as:
    CREATE OR REPLACE TRIGGER TK_SYNC_FV_MXSATIVI
    BEFORE DELETE OR INSERT OR UPDATE
    OF CODATIV
      ,RAMO
      ,PERCDESC
    ON MXSVATIVI
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
    DECLARE
       voper     NUMBER;                                --Operation
    BEGIN
       IF INSERTING
       THEN
          voper := 0;
       ELSIF UPDATING
       THEN
          voper := 1;
       ELSIF DELETING
       THEN
          voper := 2;
       END IF;
       --Save voper to a tblOperLog
    END;This trigger should save some data on a table called tblOperLog, based on the operation that is being performed on the MV (Insert, Delete or Update).
    I´ve tested this on Oracle 10G and also on Oracle 11G (11.1). On these, when we perform a Update on the parent table (on this eg, TBATIVI) the trigger TK_SYNC_FV_MXSATIVI records an Update Operation on the table tblOperLog. But, on a Oracle 11G 11.2.0.2.0 is logging a Delete and a Insert for each update that is done.
    Does anybody know how could I force the proccess that updates the MV to emits an update instead of a delete/insert?
    Thanks a lot!

    Are you doing an incremental refresh of the materialized view? Or are you doing a full refresh?
    Is the materialized view in 11.2 fast refreshable? Perhaps you're missing a materialized view log or missing some data from the materialized view log.
    In general, I'd be wary of trying to use a trigger on a materialized view to log changes to a table since there are no guarantees that the materialized view is always going to be incrementally refreshed nor that the refresh is always going to happen in exactly the same way.
    Justin

Maybe you are looking for

  • Blob filename

    i've a table with a blob-column i use webutil to save the object to the client. but how can i get the original filename of the object? a.e the name of the presentation (when it was uploaded) stored in the db (document.ppt). another question is: how c

  • Two Step Authentiction Is it available in Bulgaria ?

    is two step authentication available in Bulgaria ? Thanks

  • My I messages won't send. Any ideas ?

    All of a sudden my I messages will not go through. It says it was sent, and within a second it says it was not sent. When I retry, it still won't send. These messages are to a person that I text all the time, so I know it did work. Any ideas?

  • Impossible to edit or add the signature in a freshly installed convergence

    we are using directory server 6.3 messaging server 7.0 convergence patch 3 in the convergence web interface is not possible to edit or add the signature the text box doesn't react to my input, click or mouse is there something that need to be added t

  • Firefox won't submit form in iframe if XHTML strict is on

    Hello, I discovered that Firefox ignores <iframe name="xxx"> for <form target="xxx"> if I set application/xhtml+xml as page content type. See more here: http://stackoverflow.com/questions/18532115/posting-form-to-an-iframe-under-strict-xhtml-firefox