Version?? If 10g and later (may be 10R2 and later... didn't check) you can use the dbms_advisor.tune_mview procedure to generate the DDL needed for a fast refreshable MVIEW. I have seen a couple of bugs in it, including it dropping the refresh fast syntax in one case... which was kind of funny. Give it a whirl. Robert G. Freeman Oracle ACE Author: Oracle Database 11g RMAN Backup and Recovery (Oracle Press) - ON IT'S WAY SOON! OCP: Oracle Database 11g Administrator Certified Professional Study Guide (Sybex) Oracle Database 11g New Features (Oracle Press) Portable DBA: Oracle (Oracle Press) Oracle Database 10g New Features (Oracle Press) Oracle9i RMAN Backup and Recovery (Oracle Press) Oracle9i New Features (Oracle Press) Other various titles out of print now... Blog: http://robertgfreeman.blogspot.com The LDS Church is looking for DBA's. You do have to be a Church member in good standing. A lot of kind people write me, concerned I may be breaking the law by saying you have to be a Church member. It's legal I promise! :-) http://pages.sssnet.com/messndal/church/parachurch.pdf ________________________________ From: Martin Berger <martin.a.berger@xxxxxxxxx> To: Roger.Xu@xxxxxxxx Cc: Jared Still <jkstill@xxxxxxxxx>; Rajeev Prabhakar <rprabha01@xxxxxxxxx>; oracle-l@xxxxxxxxxxxxx Sent: Saturday, May 30, 2009 1:10:45 PM Subject: Re: Remote Materialized View containing joins have you checked Determining the Fast Refresh Capabilities of a Materialized View http://download.oracle.com/docs/cd/B28359_01/server.111/b28326/repmview.htm#sthref481 BEGIN DBMS_MVIEW.EXPLAIN_MVIEW ('SELECT * FROM oe.orders@xxxxxxxxxxxxxxxx o WHERE EXISTS (SELECT * FROM oe.customers@xxxxxxxxxxxxxxxx c WHERE o.customer_id = c.customer_id AND c.credit_limit > 500)'); END; / Query the MV_CAPABILITIES_TABLE to see the results. hth, Martin On Fri, May 29, 2009 at 21:20, Xu, Roger <Roger.Xu@xxxxxxxx> wrote: Hi list, how do I tweak so this can be fast refreshed? Thanks in advance. SQL> CREATE MATERIALIZED VIEW campaign 2 TABLESPACE BTPMTBL 3 NOCACHE LOGGING NOPARALLEL BUILD IMMEDIATE 4 REFRESH FAST WITH ROWID ON DEMAND 5 AS 6 select 7 S_SRC.ROW_ID,S_SRC.PROD_ID,S_SRC.CTLG_CAT_ID,S_SRC.PAR_SRC_ID,S_SRC.PR_ACCNT_ID, S_SRC.TMPL_ID,S_SRC.BU_ID,S_SRC.PERIOD_ID,S_SRC.PROMO_PRI_LST_ID,S_SRC.ACTIVE_FLG, 8 9 S_SRC.ADVERT_DESC_TEXT,S_SRC.COUPON_DROP_FLG,S_SRC.DISPLAY_FLG,S_SRC.CONSUME_END_DT, S_SRC.PROG_END_DT,S_SRC.SHIP_END_DT,S_SRC.FEATURE_FLG,S_SRC.PROMO_NUM, 10 11 S_SRC.OBJECTIVE,S_SRC.PACKAGE_DESC_TEXT,S_SRC.TMP_PRI_RDX_PCT,S_SRC.SRC_CD, 12 S_SRC.CONSUME_START_DT,S_SRC.PROG_START_DT,S_SRC.SHIP_START_DT,S_SRC.TRGT_QTY, 13 S_SRC.TMP_PRI_RDX_FLG,S_SRC.CREATED,S_SRC.STATUS_CD, 14 S_SRC.NAME,S_SRC.X_BRAND,S_SRC.X_CONTAINER_SIZE, 15 S_SRC.X_CONTAINER_TYPE,S_SRC.CREATED_BY,S_SRC.X_NEW_FLG,S_SRC.X_PACK_QTY, 16 S_SRC.X_SETTLEMENT_DT,S_SRC.X_NUM_STORES,S_SRC_CHNL.ROW_ID SRC_CHNL_ROW_ID, 17 S_SRC_CHNL.PROMO_ACV_PCT,S_SRC_CHNL.PAR_ROW_ID,S_SRC_CHNL.ACTL_BASELINE_CASE, 18 S_SRC_CHNL.ACTL_SPENT_AMT,S_SRC_CHNL.ACTL_INCR_CASES,S_SRC_CHNL.EST_BASELINE_CASES, 19 S_SRC_CHNL.ATTRIB_01,S_SRC_CHNL.EST_INCR_CASES,S_SRC_CHNL.INCR_LIFT, 20 S_SRC_CHNL.TACTICS_CD,S_PRI_LST.NAME PRI_LST_NAME, S_SRC.SUB_TYPE, 21 S_SRC_CHNL.rowid CHNL_RID, 22 S_PRI_LST.rowid LST_RID, 23 S_SRC.rowid SRC_RID 24 from 25 S_SRC@xxxxxxxxxxx 26 left outer join S_SRC_CHNL@xxxxxxxxxxx on S_SRC.ROW_ID = S_SRC_CHNL.PAR_ROW_ID 27 left outer join S_PRI_LST@xxxxxxxxxxx on S_SRC.PROMO_PRI_LST_ID = S_PRI_LST.ROW_ID; left outer join S_SRC_CHNL@xxxxxxxxxxx on S_SRC.ROW_ID = S_SRC_CHNL.PAR_ROW_ID * ERROR at line 26: ORA-12015: cannot create a fast refresh materialized view from a complex query