Create Materialized view is very slow

Hi
Please assist the pasted MV is taking more time(nearly 10hrs) to create, however the select query is executed fraction of seconds.
CREATE MATERIALIZED VIEW ACOSQ2.CDVEDLCRD_MV
PCTFREE 10
PCTUSED 40
INITRANS 2
MAXTRANS 255
STORAGE (
INITIAL 64 K
MINEXTENTS 1
MAXEXTENTS UNLIMITED
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 1
BUFFER_POOL DEFAULT)
TABLESPACE ACOSDATA
LOGGING
NOCACHE
NOPARALLEL
USING INDEX PCTFREE 10
INITRANS 2
MAXTRANS 255
STORAGE (
BUFFER_POOL DEFAULT)
REFRESH COMPLETE
ON DEMAND
START WITH TO_DATE('26-Mar-2008 00:00:00','dd-mon-yyyy hh24:mi:ss')
NEXT SYSDATE+7
WITH ROWID
USING DEFAULT LOCAL ROLLBACK SEGMENT
DISABLE QUERY REWRITE AS
SELECT q.FORENAME,
q.SURNAME,
to_char(date_of_birth,'yyyymmdd') As Date_of_birth,
nvl(gender,'U') As Gender,
title,
advac_points_bal,
ead.e_comms_address As email,
q.customer_number,
max_crd.max_card_number As Card_Number,
cd.card_check_digit ,
cd.advcd_termntd_code,
to_char( cd.latest_txn_date, 'YYYYMMDD') As Latest_Txn_Date,
to_char( cdu.card_use_start_dt, 'YYYYMMDD') As Card_Use_Start_Dt,
NVL((TRUNC(cd.ADVCD_TMNTD_TMSTMP) - TRUNC(TO_DATE((to_char(SYSDATE - ((TO_NUMBER(TO_CHAR(SYSDATE,'D')) - 1)+7),'DD-MON-YYYY')),'DD-MM-YYYY'))),0) As Diff_Advcd_TMNTD_TMSTMP,
pos_ppt.total_pos_pts_pending,
neg_ppt.total_neg_pts_pending,
next_max_crd.next_max_card_number_dgt As Old_Card_Number_digit
FROM cdvpersn q,
cdveaddr ead,
cdvacprs f,
cdvadvac g,
( select customer_number, SUM(points_pending) AS total_pos_pts_pending
from cdtppts
where ppend_delete_code IS NULL
and points_pending > 0
group by customer_number ) pos_ppt,
( select customer_number, SUM(points_pending) AS total_neg_pts_pending
from cdtppts
where ppend_delete_code IS NULL
and points_pending < 0
group by customer_number ) neg_ppt,
( select adv_account_number, max(a.card_number) As max_card_number
from cdvcard a, cdvcduse b
where a.card_number = b.card_number
and card_type_code <> 6
group by adv_account_number ) max_crd,
( select a1.adv_account_number, max((a1.card_number * 10) + card_check_digit) As next_max_card_number_dgt
from cdvcard a1, cdvcduse b1
where a1.card_number = b1.card_number
and card_type_code <> 6
and a1.card_number <> ( select max(c1.card_number)
from cdtcard c1
where c1.adv_account_number = a1.adv_account_number
group by adv_account_number ) next_max_crd,
cdtcard cd,
cdvcduse cdu
WHERE ead.e_comms_code = 5
AND q.customer_number between 1 and 7500000
AND q.customer_number = ead.customer_number
AND q.customer_number = f.customer_number
AND g.adv_account_number = f.adv_account_number
AND q.customer_number = pos_ppt.customer_number(+)
AND q.customer_number = neg_ppt.customer_number(+)
AND g.adv_account_number = max_crd.adv_account_number(+)
AND g.adv_account_number = next_max_crd.adv_account_number(+)
AND cd.card_number = max_crd.max_card_number
AND cd.adv_account_number = g.adv_account_number
AND cd.card_number = cdu.card_number;
Rds
Venkat

Hi
Please see the Execution plan
Execution Plan
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=554097 Card=1 Bytes=
229)
1 0 TABLE ACCESS (BY GLOBAL INDEX ROWID) OF 'CDTCDUSE' (Cost=2
Card=1 Bytes=14)
2 1 NESTED LOOPS (Cost=554097 Card=1 Bytes=229)
3 2 NESTED LOOPS (Cost=554095 Card=1 Bytes=215)
4 3 HASH JOIN (OUTER) (Cost=554094 Card=1 Bytes=190)
5 4 HASH JOIN (OUTER) (Cost=352970 Card=1 Bytes=164)
6 5 NESTED LOOPS (Cost=15 Card=1 Bytes=138)
7 6 NESTED LOOPS (Cost=14 Card=1 Bytes=128)
8 7 HASH JOIN (OUTER) (Cost=12 Card=1 Bytes=116)
9 8 HASH JOIN (OUTER) (Cost=8 Card=1 Bytes=90)
10 9 NESTED LOOPS (Cost=4 Card=1 Bytes=64)
11 10 TABLE ACCESS (BY GLOBAL INDEX ROWID) O
F 'CDTEADDR' (Cost=3 Card=1 Bytes=28)
12 11 INDEX (RANGE SCAN) OF 'CDTEADDR_PK'
(UNIQUE) (Cost=2 Card=3)
13 10 TABLE ACCESS (BY GLOBAL INDEX ROWID) O
F 'CDTPERSN' (Cost=1 Card=1 Bytes=36)
14 13 INDEX (UNIQUE SCAN) OF 'CDTPERSN_PK'
(UNIQUE)
15 9 VIEW (Cost=3 Card=1 Bytes=26)
16 15 SORT (GROUP BY) (Cost=3 Card=1 Bytes=1
3)
17 16 TABLE ACCESS (BY INDEX ROWID) OF 'CD
TPPTS' (Cost=3 Card=2 Bytes=26)
18 17 INDEX (RANGE SCAN) OF 'CDX078ND_CD
TPPTS' (NON-UNIQUE) (Cost=2 Card=2)
19 8 VIEW (Cost=3 Card=1 Bytes=26)
20 19 SORT (GROUP BY) (Cost=3 Card=1 Bytes=13)
21 20 TABLE ACCESS (BY INDEX ROWID) OF 'CDTP
PTS' (Cost=3 Card=1 Bytes=13)
22 21 INDEX (RANGE SCAN) OF 'CDX078ND_CDTP
PTS' (NON-UNIQUE) (Cost=2 Card=2)
23 7 TABLE ACCESS (BY GLOBAL INDEX ROWID) OF 'CDT
ACPRS' (Cost=2 Card=1 Bytes=12)
24 23 INDEX (RANGE SCAN) OF 'CDX002ND_CDTACPRS'
(NON-UNIQUE) (Cost=1 Card=1)
25 6 TABLE ACCESS (BY GLOBAL INDEX ROWID) OF 'CDTAD
VAC' (Cost=1 Card=1 Bytes=10)
26 25 INDEX (UNIQUE SCAN) OF 'CDTADVAC_PK' (UNIQUE
27 5 VIEW (Cost=352816 Card=29814005 Bytes=775164130)
28 27 SORT (GROUP BY) (Cost=352816 Card=29814005 Byt
es=1282002215)
29 28 MERGE JOIN (Cost=352816 Card=29814005 Bytes=
1282002215)
30 29 SORT (JOIN) (Cost=215089 Card=29814006 Byt
es=715536144)
31 30 HASH JOIN (Cost=73165 Card=29814006 Byte
s=715536144)
32 31 INDEX (FAST FULL SCAN) OF 'CDTCDUSE_PK
' (UNIQUE) (Cost=4 Card=29814006 Bytes=268326054)
33 31 PARTITION RANGE (ALL)
34 33 TABLE ACCESS (FULL) OF 'CDTCARD' (Co
st=40282 Card=39752004 Bytes=596280060)
35 29 FILTER
36 35 SORT (JOIN)
37 36 VIEW OF 'VW_SQ_1' (Cost=826 Card=34324
840 Bytes=652171960)
38 37 SORT (GROUP BY) (Cost=826 Card=34324
840 Bytes=411898080)
39 38 TABLE ACCESS (BY GLOBAL INDEX ROWI
D) OF 'CDTCARD' (Cost=826 Card=39752004 Bytes=477024048)
40 39 INDEX (FULL SCAN) OF 'CDX012ND_C
DTCARD' (NON-UNIQUE) (Cost=26 Card=39752004)
41 4 VIEW (Cost=200985 Card=29814006 Bytes=775164156)
42 41 SORT (GROUP BY) (Cost=200985 Card=29814006 Bytes
=626094126)
43 42 HASH JOIN (Cost=70569 Card=29814006 Bytes=6260
94126)
44 43 INDEX (FAST FULL SCAN) OF 'CDTCDUSE_PK' (UNI
QUE) (Cost=4 Card=29814006 Bytes=268326054)
45 43 PARTITION RANGE (ALL)
46 45 TABLE ACCESS (FULL) OF 'CDTCARD' (Cost=402
82 Card=39752004 Bytes=477024048)
47 3 TABLE ACCESS (BY GLOBAL INDEX ROWID) OF 'CDTCARD' (C
ost=1 Card=1 Bytes=25)
48 47 INDEX (UNIQUE SCAN) OF 'CDTCARD_PK' (UNIQUE)
49 2 INDEX (RANGE SCAN) OF 'CDTCDUSE_PK' (UNIQUE) (Cost=1 C
ard=1)
Statistics
1300 recursive calls
0 db block gets
606 consistent gets
46 physical reads
0 redo size
1429 bytes sent via SQL*Net to client
1709 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
46 sorts (memory)
0 sorts (disk)
0 rows processed

Similar Messages

  • How to create materialized view based on a view?

    Hi,
    I hope this is not very far fetched idea.
    I have a very complex view and I would like to replicate it 'in place' that is I would like to make a materialized view that is based on this view complex view. I would like to use this materialized view (i.e table) to query data instead of using the original view, since it takes Oracle some 10-15 seconds to execute my query on the original view and I am not allowed to create indexes on most of the tables that are included in the original view.
    Can this be done?
    Best regards,
    Tamas Szecsy

    The best way to do this is to create a materialzed view based on the underlying code of the original view. If you don't have this handy, issue the following in sqlplus:
    select text
    from user_views
    where view_name = 'NAME_OF_VIEW'
    You can then cut and paste the sql statement into your create materialized view statement.
    Please note, you will probable have to set the long parameter to a higher value to reveal the complete statement for example:
    SQL> set long 2048

  • Error on creating Materialized view.

    Hi,
    I don't understand why it happens...
    When I tried to creating materialized view, it shows a error "ORA-01013: User requested cancel of current operation".
    I don't understand why it happens. I just waited it successfully created. But I didn't press any button.
    Does it matter of size of joining table? I had same issue before. At that time I just removed some tables from the joining condition, this error was gone.
    But at this time, I cannot exclude any other tables the select statement
    Can anyone help me this issue, please?

    Hi,
    11g ( 11.2.0.3 ) has a problem with materialized views based on ROWID, resulting in the problem you mentioned.
    A workaround is creating the MV's based on primary keyl.
    There is also a patch available on MOS, to solve the problem ( thanks to a very long SR from me :-) )
    It is known as bug 13657605 and the patch for it has the same number.
    Remember to read the README, as this patch is only for 11.2.0.3 !!
    Cheers
    FJFranken

  • Problems in creating Materialized View from 10g R2  to 11g

    Hi,
    We have two databases in 10g Release 2. These databases are on two different servers and we use
    Materialized views to replicate data between these servers. We are currently using 64 bit version of
    oracle 10g release 2 for LINUX.
    Oracle Database 10g Release 10.2.0.1.0 - 64 bit Production
    PL/SQL Release 10.2.0.1.0 - Production
    CORE 10.2.0.1.0 Production
    TNS for Linux: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    We use CENTOS 5 - 64 bit edition
    We upgraded one of the databases to 11g (We exported the data from old database and
    imported it in new database) . Then we tried to create a Materialized view with incremental refresh
    on it where the base table is in the second Oracle 10g database.
    The problem is that it is not letting us create the view with FAST Refresh. It kept on giving ORA-12028
    error. We tried different remedies suggested on forums like creating a view with ROWID, but still it
    continued giving us the same error. We also synchronized the characterset of Oracle 10g and Oracle 11g
    installations but still it did not work.
    Our base table size is pretty large (over 10 Million records) and if we do a full refresh, it takes hours to
    refresh it.
    Without incremental refresh, we will not be able to fucntion, and to upgrade both database simultaneously
    we will need a large down-time which also we can not afford.
    Please advise what should we do.
    Best Regards
    Madhup
    Edited by: Madhup on Mar 2, 2009 10:45 AM

    Hello,
    Yesterday I met the same problem and very sad about this, however, my story is much more complicated (I think so).
    I have 6 databases:
    2 - 11g
    2 - 10g
    2 - 9i
    Every database of each release has different characterset(UTF8 and AL16UTF16).
    I am trying to create Materialized view with FAST REFRESH on Oracle 11g, when master tables are located on 10g database and 9i database.
    Materialized view, which points to 9i database, was successfully created.
    Materialized view, which points to 10g database, gets ORA-12028
    Like you, I tried many notes from METALINK and thought at the begining that the problem is my characterset. But, when the materialized views were successfully built on Oracle 9i database, I understood that the problem is something else.
    Did you find the actual reason why this issue does not work??
    Thanks,
    Alex

  • Error Creating Materialized View With a Job

    Oracle 9ir2
    I've created a job like this in a java class:
    ...Java Code ...
    cs = conn.prepareCall ("DECLARE v_job NUMBER; BEGIN DBMS_JOB.SUBMIT(v_job,'begin CTH_REGENERA_VM; end;', TRUNC(SYSDATE+1) + (3/24)); END;");
    ...Java Code ...
    The Procedure called in the Job:
    CREATE OR REPLACE PROCEDURE CTH_REGENERA_VM
         AUTHID CURRENT_USER IS
         existe NUMBER(1);
         cur BINARY_INTEGER := DBMS_SQL.OPEN_CURSOR;
         fdbk BINARY_INTEGER;
    BEGIN
         SELECT count(*) INTO existe FROM user_mviews WHERE mview_name = 'CTH_PRESENTA_A_VM';
         IF existe > 0 THEN
              DBMS_SQL.PARSE(cur, 'DROP MATERIALIZED VIEW CTH_PRESENTA_A_VM', DBMS_SQL.NATIVE);
         fdbk := DBMS_SQL.EXECUTE(cur);
              INSERT INTO CTH_HISTORIAL VALUES('ELIMINADA VM CTH_PRESENTA_A_VM', SYSDATE);
              COMMIT;
         END IF;
         DBMS_SQL.PARSE(cur, 'CREATE MATERIALIZED VIEW CTH_PRESENTA_A_VM
         TABLESPACE DAT1_CTH
         STORAGE(INITIAL 16M NEXT 8M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0)
                   XMLTYPE XML STORE AS CLOB (           TABLESPACE DAT1_CTH
                   STORAGE(INITIAL 16M NEXT 8M MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0))
         AS select FICHA, XML,
         extractvalue(xml, ''/FICHE/Encab_de_nombre_geogr�fico_a'') as MUNICIPIO,
         extractvalue(xml, ''/FICHE/Encab_de_nombre_geogr�fico_c'') as CALIFICACION,
         extractvalue(xml, ''/FICHE/Encab_de_nombre_geogr�fico_b'') as PROVINCIA,
         extractvalue(xml, ''/FICHE/Encab_tem�tico_de_materia_a[1]'') as MATERIA,
         extractvalue(xml, ''/FICHE/Fecha_cronol�gica_b[1]'') as FECHA,
         extractvalue(xml, ''/FICHE/Datos_matem�ticos_a[1]'') as ESCALA
         from cth_xmltable', DBMS_SQL.NATIVE);
         INSERT INTO CTH_HISTORIAL VALUES('ASIGNO EL PARSE DE MATERIALIZED', SYSDATE);
         fdbk := DBMS_SQL.EXECUTE(cur);
         INSERT INTO CTH_HISTORIAL VALUES('EJECUTO EL PARSE DE MATERIALIZED', SYSDATE);
         INSERT INTO CTH_HISTORIAL VALUES('CREADA VM CTH_PRESENTA_A_VM', SYSDATE);
         DBMS_SQL.PARSE(cur, 'CREATE INDEX CTH_INDEX1
         ON CTH_PRESENTA_A_VM(XML)
         INDEXTYPE IS CTXSYS.CONTEXT
         PARAMETERS (''storage cth section group ctxsys.auto_section_group'')', DBMS_SQL.NATIVE);
         fdbk := DBMS_SQL.EXECUTE(cur);
         INSERT INTO CTH_HISTORIAL VALUES('CREADO INDICE ORACLE TEXT CTH_INDEX1', SYSDATE);
         DBMS_SQL.PARSE(cur, 'CREATE INDEX CTH_IDX_MUNICIPIO3
              ON CTH_PRESENTA_A_VM(UPPER(MUNICIPIO))
              TABLESPACE IDX1_CTH
              STORAGE (INITIAL 1M NEXT 512K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0)', DBMS_SQL.NATIVE);
         fdbk := DBMS_SQL.EXECUTE(cur);
         INSERT INTO CTH_HISTORIAL VALUES('CREADO INDICE CTH_IDX_MUNICIPIO2', SYSDATE);
         DBMS_SQL.PARSE(cur, 'CREATE INDEX CTH_IDX_FICHA2
         ON CTH_PRESENTA_A_VM
         (FICHA)
         TABLESPACE IDX1_CTH
         STORAGE(INITIAL 1M NEXT 512K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0)', DBMS_SQL.NATIVE);
         fdbk := DBMS_SQL.EXECUTE(cur);
         INSERT INTO CTH_HISTORIAL VALUES('CREADO INDICE CTH_IDX_FICHA2', SYSDATE);
         DBMS_SQL.CLOSE_CURSOR(cur);
    COMMIT;
    END;
    I got always an error in the created materialized view. If I call the procedure with SQL Plus, it run ok. The user
    has CTXAPP, DBA roles, so I supouse it is not a privileges problem. I also tried to create a simple materialized view or a table, and always got an error ora-12011
    Thanks in advance.

    If I call the procedure with SQL Plus, it run ok. Are you using the same user to run it in SQL*Plus as runs it from Java.
    The normal reason for procedures to fail like this is privileges. Particularly, we cannot run procedures using privileges we have been granted through roles.
    The user has CTXAPP, DBA roles, so I supouse it is not a privileges problem. Try granting the system privilege CREATE MATERIALIZED VIEW to the user and see what happens.
    I drop the materialized and create again, cause it's the fastest way I've found. With a DBMS_MVIEW.REFRESH is too slow.I find that surprising as drop & create has to do all the work that a refresh has to do plus some more - maybe it's something to do with XML. Did you try adding a snapshot log and going for FAST? I don't know whwther the XML procesing would render the view complex - have you explained it?
    Cheers, APC

  • Create Materialized View hangs

    Hi,
    I have a query, which contains about 10 tables and returns about 40000 rows. When I execute the query itself it runs about 1minute.
    I want to create a Materialized View for that query, but I had to stop it after some hours. There is no error message, it just doesn't stop.
    Do you have any ideas what the problem could be or where I should start to look at?
    Thank you very much for your help!
    DROP MATERIALIZED VIEW A;
    CREATE MATERIALIZED VIEW A
    TABLESPACE A_T
    PCTUSED    0
    PCTFREE    10
    INITRANS   2
    MAXTRANS   255
    STORAGE    (
                INITIAL          64K
                NEXT             1M
                MINEXTENTS       1
                MAXEXTENTS       UNLIMITED
                PCTINCREASE      0
                BUFFER_POOL      DEFAULT
    NOCACHE
    NOLOGGING
    NOCOMPRESS
    NOPARALLEL
    BUILD IMMEDIATE
    REFRESH COMPLETE ON DEMAND
    WITH PRIMARY KEY
    --ENABLE QUERY REWRITE
    AS
    SELECT...

    890408 wrote:
    It returns all rows after 1 minute. I don't have any DB links btw. and I am using oracle 11g.
    We had the same problem with another oracle installation (10g) with another query.
    When I watch the session in my TOAD Session Browser I see the event "asynch descriptor resize" in wait, could this be a hint?
    Or can I enable somehow tracing to find out why the mat view creation never ends?tracing is enabled by below
    DBMS_SESSION.SESSION_TRACE_ENABLE(TRUE,TRUE,'ALL_EXECUTIONS');

  • Creating Materialized View in Toad

    As with every new endeavor - come new questions.
    I am trying to create a materialized view via toad (first time doing this). Now - toad is great, since it provides a kind-of wizard interface. Hence, one doesn't have to completely code in the create statement, with all of the options, etc.
    Instead, in toad, one can (via the schema browser), go into the Materialized Views tab and click on create new. This opens a window with 6 tabs: Basic Info, Refresh Info, Physical Attributes, Query, Partitions & Subpartition Template.
    In the Basic Info, one can put a check mark next to some of the following options:
    -Build Deffered
    -Parallel
    -Cache
    -Logging
    -Using index
    -Allow updates
    etc.
    I have read that build deferred refers to whether or not you would like the view to be created automatically or to be deferred.
    Anyways, I tried to find Toad documentation to explain each of the options in-detail. No success. Hence, am researching each part piece by piece.
    But - here is my question:
    In the Query tab, we are asked to specify a query. I am assuming that the query does not have to be a full query, beginning with CREATE MATERIALIZED VIEW mv_table1 REFRESH FAST etc...
    Since in this 'wizard', we are providing the MV name at the top of the dialog box, we are checking the 'options' in the other tabs, etc.
    And so, I assumed that the query should merely be a select query in the window mentioned above.
    So I entered the following:
    select * from table1@remote_db;
    When I go to verify the syntax, I get the error message: ORA_00911: invalid character. It seems to be pointing to my db_link (remote_db). I have been using this link throughout many places, w/o any problems.
    Has anyone created a MV in toad before? Any links to good toad documentation would be helpful as well.
    Thanks.

    (This is fun... ;))
    For anyone endeavoring this in the future, below I have attached the prerequisites required in order to create a materialized view (can also be found @ http://download-uk.oracle.com/docs/cd/B14117_01/server.101/b10759/statements_6002.htm):
    Prerequisites
    The privileges required to create a materialized view should be granted directly rather than through a role.
    To create a materialized view in your own schema:
    You must have been granted the CREATE MATERIALIZED VIEW system privilege and either the CREATE TABLE or CREATE ANY TABLE system privilege.
    You must also have access to any master tables of the materialized view that you do not own, either through a SELECT object privilege on each of the tables or through the SELECT ANY TABLE system privilege.
    To create a materialized view in another user's schema:
    You must have the CREATE ANY MATERIALIZED VIEW system privilege.
    The owner of the materialized view must have the CREATE TABLE system privilege. The owner must also have access to any master tables of the materialized view that the schema owner does not own (for example, if the master tables are on a remote database) and to any materialized view logs defined on those master tables, either through a SELECT object privilege on each of the tables or through the SELECT ANY TABLE system privilege.
    To create a refresh-on-commit materialized view (ON COMMIT REFRESH clause), in addition to the preceding privileges, you must have the ON COMMIT REFRESH object privilege on any master tables that you do not own or you must have the ON COMMIT REFRESH system privilege.
    To create the materialized view with query rewrite enabled, in addition to the preceding privileges:
    If the schema owner does not own the master tables, then the schema owner must have the GLOBAL QUERY REWRITE privilege or the QUERY REWRITE object privilege on each table outside the schema.
    If you are defining the materialized view on a prebuilt container (ON PREBUILT TABLE clause), then you must have the SELECT privilege WITH GRANT OPTION on the container table.
    The user whose schema contains the materialized view must have sufficient quota in the target tablespace to store the master table and index of the materialized view or must have the UNLIMITED TABLESPACE system privilege.
    When you create a materialized view, Oracle Database creates one internal table and at least one index, and may create one view, all in the schema of the materialized view. Oracle Database uses these objects to maintain the materialized view data. You must have the privileges necessary to create these objects.

  • While creating Billing, system is very slow..performance issue

    Hi,
    While creating Billing, system is very slow. How can I debugg and provide the analysis where is the exact problem.
    This is showing performance issue.
    Waiting for kind response.
    Best Regards,
    Padhy
    Moderator Message : Duplicate post locked.
    Edited by: Vinod Kumar on May 12, 2011 10:59 AM

    hi,
    Chk the links
    http://help.sap.com/saphelp_nw04/helpdata/en/4a/e71f39488fee0ce10000000a114084/content.htm
    Re: How to create Secondary Index?
    How may secondary indices I can create on the ODS?
    Deletion of ODS index
    Ramesh

  • Error while creating materialized view which using database link

    Helo!
    I'm getting error "ORA-00942: table or view does not exist" when I want to create materialized view.
    Details:
    1. On destination database I create a database link:
    CREATE DATABASE LINK SDATABASE
    CONNECT TO MYUSER
    IDENTIFIED BY MYUSERPASS
    USING 'ORCL';
    => Command "SELECT * FROM TABLE1@SDATABASE" returns data normally!
    2. On source database I create MATERIALIZED VIEW LOG:
    CREATE MATERIALIZED VIEW LOG
    ON TABLE1
    WITH PRIMARY KEY
    INCLUDING NEW VALUES;
    3. Now, when I want to create MATERIALIZED VIEW on destination database:
    CREATE MATERIALIZED VIEW TABLE1
    REFRESH FAST
    START WITH SYSDATE
    NEXT SYSDATE + 1/1440
    WITH PRIMARY KEY
    AS SELECT * FROM TABLE1@SDATABASE;
    ...I get error "ORA-00942: table or view does not exist"!
    How is that possible if command "SELECT * FROM TABLE1@SDATABASE" returns data normally?
    Thanks,
    Voranc

    And, I'm using Oracle 10g.
    Voranc

  • How to create materialized view based on a synonym

    Hi all,
    I am trying to create simple materialized view based on a synonym and that synonym is pointing a view in other database (using dblink). I am getting table or view not found error . I am able to select synonym if i use select but not in materialized view. Please help me.
    Thanks,

    The best way to do this is to create a materialzed view based on the underlying code of the original view. If you don't have this handy, issue the following in sqlplus:
    select text
    from user_views
    where view_name = 'NAME_OF_VIEW'
    You can then cut and paste the sql statement into your create materialized view statement.
    Please note, you will probable have to set the long parameter to a higher value to reveal the complete statement for example:
    SQL> set long 2048

  • How to CREATE MATERIALIZED VIEW LOG (MV fast refresh) with some JOINS

    Hi @ all,
    i'm trying to create a MATERIALIZED VIEW LOG for a fast refresh of a MATERIALIZED VIEW.
    It works fine with a simple Request in the MATERIALIZED VIEW:
    CREATE MATERIALIZED VIEW MV_ZOTD43_P
    TABLESPACE GDII
    BUILD IMMEDIATE
    REFRESH FORCE AS
    SELECT * FROM ZOTD43_P;
    COMMIT;
    CREATE MATERIALIZED VIEW LOG ON ZOTD43_P
    TABLESPACE "GDII"
    WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;
    call DBMS_MVIEW.REFRESH('MV_ZOTD43_P', 'f');
    But when I use a complex SQL-Request with some JOINS (one of the Table with spatial Data) in the MATERIALIZED VIEW, I get an error:
    CREATE MATERIALIZED VIEW MV_TEST
    TABLESPACE GDII
    BUILD IMMEDIATE
    REFRESH FORCE AS
    SELECT lptd04_p.sst_nr AS sst_nr,
    lptd03_p.aaaa AS aaaa,
    lptd04_geom.geom as geom
    FROM lptd04_p lptd04_p
    JOIN lptd01_p lptd01_p ON lptd01_p.cre_nr = lptd04_p.sst_nr
    JOIN lptd04_geom ON lptd04_geom.sst_nr = lptd04_p.sst_nr
    JOIN lptd03_p lptd03_p ON lptd03_p.lief_nr = lptd04_p.lief_nr;
    COMMIT;
    CREATE MATERIALIZED VIEW LOG ON LPTD04_P
    TABLESPACE "GDII"
    WITH PRIMARY KEY, ROWID, SEQUENCE INCLUDING NEW VALUES;
    call DBMS_MVIEW.REFRESH('MV_TEST', 'f');
    Error report:
    SQL Error: ORA-12004: REFRESH FAST kann für Materialized View "GDI"."MV_GDI_SST_STAMM" nicht benutzt werden
    ORA-06512: in "SYS.DBMS_SNAPSHOT", Zeile 2255
    ORA-06512: in "SYS.DBMS_SNAPSHOT", Zeile 2461
    ORA-06512: in "SYS.DBMS_SNAPSHOT", Zeile 2430
    ORA-06512: in Zeile 1
    12004. 00000 - "REFRESH FAST cannot be used for materialized view \"%s\".\"%s\""
    *Cause:    The materialized view log does not exist or cannot be used. PCT
    refresh is also not enabled on the materialized view
    *Action:   Use just REFRESH, which will reinstantiate the entire table.
    If a materialized view log exists and the form of the materialized
    view allows the use of a materialized view log or PCT refresh is
    possible after a given set of changes, REFRESH FAST will
    be available starting the next time the materialized view is
    refreshed.
    Am I doing something wrong or is it not possible CREATE MATERIALIZED VIEW LOG when the MATERIALIZED VIEW got some JOINS?
    Regards,
    Greq

    Thanks for the link Alessandro ,
    the error seems something to do with the Column-Type SDO_GEOMETRY, so
    i create a new thread in the Spatial Discussion forum:
    FAST REFRESHing of Oracle Materialized Views containing SDO_GEOMETRY column
    Regards,
    Greq

  • Can we create materialized view on the top of another materialized view.

    Hi ,
    can we create materialized view on the top of another materialized view.
    Thanks
    Naveen

    Welcome , Just remember is not good apporch to do that since performance when MV refresh
    Please mark this thread as answered .

  • Error While Creating Materialized View

    Hello,
    I am getting error ORA-22818: subquery expressions not allowed here while creating materialized view. I am using Oracle9i Enterprise Edition Release 9.2.0.1.0. Below pasted is my SQL Script.
    Any help is highly appreciable.
    Thanks
    *********SQL************
    select distinct(id),NAME,(select count(GRADE) from employees where
    nationality like '%US%'and id=a.organization_id and grade=a.grade
    group by ID,GRADE) US,(select count(GRADE) from employees where
    nationality not like '%US%' and organization_id=a.organization_id and grade=a.grade
    group by ORGANIZATION_ID,GRADE) NON_US,grade from employees a
    where grade is not null
    group by GRADE,ID,name
    order by to_number(grade) desc

    Hi,
    This is a documented restriction on MVs. You cannot have a scalar express (i.e a select statement) in the select list.
    You can get round this by joining your select count(grade).. expression in as an inline view in your FROM clause. Or you can create a normal view without the scalar expression, create your MV as a select from this view, then re-define your view to contain the query you want.
    Hope that helps,
    Rod West

  • Error occured while creating MATERIALIZED VIEW

    I created as below:
    CREATE MATERIALIZED VIEW LOG ON FIN.F_CV_HDR
    WITH ROWID, SEQUENCE, PRIMARY KEY;
    CREATE MATERIALIZED VIEW LOG ON FIN.F_CV_DTL
    WITH ROWID, SEQUENCE;
    REATE MATERIALIZED VIEW F_GL_SMRY_MVW
    PARALLEL
    BUILD IMMEDIATE
    REFRESH FAST ON COMMIT AS
    SELECT * FROM
    SELECT
    F_CV_HDR.ROWID "HDR_ID",
    CAST(NULL AS ROWID) "DTL_ID",
    cah_dsm_trm_tr_code gsv_dsm_trm_tr_code,
    cah_dsm_dcmnt_type gsv_dsm_dcmnt_type,
    cah_cv_nmbr gsv_dcmnt_nmbr,
    cah_lcm_lctn_code dsv_lcm_lctn_code,
    cah_dsm_dcmnt_srs gsv_dsm_dcmnt_srs,
    cah_cv_date gsv_dcmnt_date,
    'G' gsv_sub_code_type,
    DECODE(cah_dsm_dcmnt_type,'CPV',0,'CRV',cah_net_amnt) gsv_amnt_dbtd,
    DECODE(cah_dsm_dcmnt_type,'CPV','C','CRV','D') gsv_dr_cr_indctr,
    cah_net_amnt gsv_amnt,
    DECODE(cah_dsm_dcmnt_type,'CPV',cah_net_amnt,'CRV',0) gsv_amnt_crdtd,
    cah_asm_sbldgr_code gsv_sub_code,
    CAH_RMRKS GSV_RMRKS,
    CAST(NULL AS VARCHAR2(3)) GSV_CRS_RFRNCE_TYPE,
    CAST(NULL AS VARCHAR2(3)) GSV_CRS_RFRNCE_TR_CODE,
    CAST(NULL AS NUMBER(10)) GSV_CRS_RFRNCE_NMBR,
    CAST(NULL AS VARCHAR2(6)) GSV_FCM_CRNCY_CODE,
    CAST(NULL AS NUMBER(6,3)) GSV_EXCHNGE_RATE,
    CAST(NULL AS NUMBER(13,2)) GSV_FRGN_CRNCY_AMNT,
    CAST(NULL AS DATE) GSV_DATE_FROM,
    CAST(NULL AS DATE) GSV_DATE_TO,
    CAST(NULL AS NUMBER(7)) GSV_RJH_NMBR,
    CAST(NULL AS VARCHAR2(3)) GSV_PJC_SRS,
    CAST(NULL AS NUMBER(7)) GSV_PJC_NMBR,
    CAST(NULL AS NUMBER(3)) GSV_PJC_EQPTMNT_SRL,
    CAST(NULL AS VARCHAR2(5))GSV_PJC_EXPNSE_HEAD_CODE,
    CAST(NULL AS VARCHAR2(3)) gsv_dpm_dprtmnt_code,
    cah_asm_amm_main_code gsv_amm_main_code,
    CAH_LCM_LCTN_CODE_BOOK GSV_LCM_LCTN_CODE_BOOK,
    CAST(NULL AS NUMBER) gsv_dr_cr_advce_srl,
    0 gsv_dcmnt_srl_nmbr,
    cah_trnsctn_with_indctr gsv_trnsctn_with_indctr,
    cah_trnsctnr_code gsv_trnsctnr_code,
    0 gsv_net_tds_amnt,
    to_number(TO_CHAR(cah_cv_date ,'YYYY')) gsv_year,
    to_number(TO_CHAR(cah_cv_date ,'MM')) gsv_mnth,
    cah_cv_tmpry_nmbr gsv_tmpry_nmbr,
    CAH_SRCE_INDCTR GSV_SRCE_INDCTR,
    CAST(NULL AS VARCHAR2(50)) GSV_BILL_NMBR,
    CAST(NULL AS DATE) gsv_bill_date,
    cah_pay_rcve_name gsv_pay_rcve_name
    FROM f_cv_hdr
    WHERE CAH_FNCL_CLSRE_INDCTR = 'N'
    AND cah_avlble_indctr = 'Y'
    UNION ALL
    SELECT
    F_CV_HDR.ROWID "HDR_ID",
    f_cv_dtl.ROWID "DTL_ID",
    cah_dsm_trm_tr_code gsv_dsm_trm_tr_code,
    cah_dsm_dcmnt_type gsv_dsm_dcmnt_type,
    cah_cv_nmbr gsv_dcmnt_nmbr,
    cah_lcm_lctn_code dsv_lcm_lctn_code,
    cah_dsm_dcmnt_srs gsv_dsm_dcmnt_srs,
    cah_cv_date gsv_dcmnt_date,
    cad_sub_code_type gsv_sub_code_type,
    DECODE(cad_dr_cr_indctr, 'C',0,'D',cad_amnt) gsv_amnt_dbtd,
    cad_dr_cr_indctr gsv_dr_cr_indctr,
    cad_amnt gsv_amnt,
    DECODE(cad_dr_cr_indctr, 'D',0,'C',cad_amnt) gsv_amnt_crdtd,
    cad_sub_code gsv_sub_code,
    cad_rmrks gsv_rmrks,
    cad_crs_rfrnce_type gsv_crs_rfrnce_type,
    cad_crs_rfrnce_tr_code gsv_crs_rfrnce_tr_code,
    CAD_CRS_RFRNCE_NMBR GSV_CRS_RFRNCE_NMBR,
    CAST(NULL AS VARCHAR2(6)) GSV_FCM_CRNCY_CODE,
    CAST(NULL AS NUMBER(6,3)) GSV_EXCHNGE_RATE,
    CAST(NULL AS NUMBER(13,2)) gsv_frgn_crncy_amnt,
    cad_date_from gsv_date_from,
    cad_date_to gsv_date_to,
    cad_rjh_nmbr gsv_rjh_nmbr,
    cad_pjc_srs gsv_pjc_srs,
    cad_pjc_nmbr gsv_pjc_nmbr,
    cad_pjc_eqpmnt_srl gsv_pjc_eqptmnt_srl,
    cad_pjc_expnse_head_code gsv_pjc_expnse_head_code,
    cad_dpm_dprtmnt_code gsv_dpm_dprtmnt_code,
    cad_amm_main_code gsv_amm_main_code,
    cah_lcm_lctn_code_book gsv_lcm_lctn_code_book,
    cad_dr_cr_advce_srl gsv_dr_cr_advce_srl,
    cad_cv_srl_nmbr gsv_dcmnt_srl_nmbr,
    cah_trnsctn_with_indctr gsv_trnsctn_with_indctr,
    cah_trnsctnr_code gsv_trnsctnr_code,
    0 gsv_net_tds_amnt,
    to_number(TO_CHAR(cah_cv_date ,'YYYY')) gsv_year,
    to_number(TO_CHAR(cah_cv_date ,'MM')) gsv_mnth,
    cah_cv_tmpry_nmbr gsv_tmpry_nmbr,
    cah_srce_indctr gsv_srce_indctr,
    CAST(NULL AS VARCHAR2(50)) GSV_BILL_NMBR,
    CAST(NULL AS DATE) GSV_BILL_DATE,
    cah_pay_rcve_name gsv_pay_rcve_name
    FROM f_cv_hdr,
    F_CV_DTL
    WHERE CAH_FNCL_CLSRE_INDCTR = 'N'
    AND cah_avlble_indctr = 'Y'
    AND cah_lcm_lctn_code = cad_cah_lcm_lctn_code
    AND CAH_DSM_DCMNT_TYPE = CAD_CAH_DSM_DCMNT_TYPE
    AND cah_cv_tmpry_nmbr = cad_cah_cv_tmpry_nmbr);
    Giving below error:
    ==================================================
    ORA-12054: cannot set the ON COMMIT refresh attribute for the materialized view
    12054. 00000 - "cannot set the ON COMMIT refresh attribute for the materialized view"
    *Cause:    The materialized view did not satisfy conditions for refresh at
    commit time.
    *Action:   Specify only valid options.
    ==================================================

    *Action: Specify only valid options.                                                                                                                                                                                                                           

  • Error while creating Materialized View step 3 of 6 using wizard

    have oracle 9i Rel 1 on Windows 2000 server. Master Site has been setup. Database links are created at Materialized view site. But while creating Materialized View Group using wizard there is following error on step 3 of 6.
    Statement:----------------
    /*OracleOEM*/ SELECT 1 FROM SYS.dba_constraints@masterdbname WHERE OWNER='username' and table_name='tabname' AND constraint_type='P'
    Stack Trace:----------------
    ORA-00942: table or view does not exist.
    ORA-02063: preceding line from masterdbname.
    All parameters for replication are correct.
    Please help me early.
    Thanks

    Hello,
    In the masterdbname, logging as sys user, you must grant select permission on sys.dba_constraints view to mvadmin_dbname user (where dbname is the replicated database name).
    Regards,

Maybe you are looking for

  • New ipod touch won't sync with pc

    i got an ipod touch today and when i connect to to my pc i cant sync it. both the ipod and the pc play the "device connected" sound and when i first put it in, the windows device manager thing installed it, but itunes doesn't open when i connect it,

  • SQL Query + long execution time.

    Dear Gurus/masters/All, I request you all to help me in tuning the SQL query which is taking more time. DB Version : 10.2.0.4 SQL Query WHERE condition: select column1, column2, ......... FROM SIEBEL.S_ORG_EXT T1, SIEBEL.S_PROD_INT T2, SIEBEL.S_VOD T

  • I'm getting DataSource.NotFound: OData: Request failed (404) error when open connection

    Hi, I have a simple OData service running in a server. When I try to call him in a browser all works fine. But in Excel Power Query, after the user authentication step, I get this error in Query editor DataSource.NotFound: OData: Request failed (404)

  • Show The Word Original or Duplicated When Xml Have lots of Invoices

    Hy! i have a template of a invoice with have multiple invoices and i print all the original and duplicated invoice sucessefull. If i have a xml with 4 invoices it prints me 8 invoices! Now i have one issue that i cant solve! in the headers i want to

  • Options for old video in Premiere Pro CS6

    Hello, so I recently discovered a VHS tape from a long time ago that contained family videos that were professionally transferred from old actual film to this VHS tape.  I copied the VHS tape to a DVD so I could work with it in PP but with all the ef