Query on Materialized View created on Prebuilt Table

Hi,
I am trying to explain the scenario below on Materialized View which I want to setup for our database.
I have created a materialized view on prebuilt table on target side on primary key. Now for purging history data from target side which are more than 5 years old I have executed the following steps:
1. Dropped the materialized view which was created previously on prebuilt table in target side.
2. Deleted the data from that target table which are more than 5 years old.
3. Now created the materialized view again on the prebuilt table.
Now, the problem which I am facing is that - if any changes happens in the source side during the above 3 steps on the target side those changed records were not captured even after successfully building materialized view again in the target side (i.e. after completing step-3 of above the intermediate changed records were not captured).
Can you please let me know exactly what I am doing wrong here and how can I achieve my intended result.
Regards,
Koushik

See matelink for doc id *252246.1*. The document id says: A materialized view was defined on a Table A. This table had a referential constraint defined against another table, Table B. This constraint was defined as 'ON DELETE CASCADE'. An 'ON DELETE CASCADE' constraint is not allowed on views but as the constraint was created on the table underlying the materialized view, Table A, it could be created although it would behave as a constraint on the view. The constraint existed for performance reasons, which is permitted, and was disabled when created but a general script had been run to enable all constraints. When a delete was performed on Table B the error above was reported although there was no view created on Table B.

Similar Messages

  • Select query in materialized view with two dblinks

    Hi All,
    We have oracle 10g On windows.
    We are trying to create materialized view. Scenario is we have base table on other database and we are creating mview on different database.
    Basa database have two schema's and i am selecting records from that two schema's using two private db links.
    But when i am tryin gto create mview its not getting created. After 15 hrs. its still showing creation command and not finished.
    Query is :-
    Is it good practice to have two db links in select query of materialized view.

    Billy  Verreynne  wrote:
    Chanchal Wankhade wrote:
    Is it good practice to have two db links in select query of materialized view.Same db link being used twice, or two different db links?
    If the former, you ideally want the local Oracle db to send the join to the remote database, and for the remote database to drive the join between those 2 tables. There is a hint (<i>driving_site</i>) that can be used - or the join query can be defined on the remote database as a view, and the local materialised view can then use that remote view.
    If you have 2 different db links and joining across these - usually a bad idea to perform distributed database joins. There are lots of limitations as to how the tables can be joined. Worse case, full table scans of both remote tables, pulling all the rows from the 2 remote database tables to the local database, and joining these on the local database.
    I have seen some severe performance issues in the past as a result of distributed joins. I'll rather use 2 materialised views for pulling both distributed tables's data locally, and then do the join on local data (using indexes, partition pruning, etc)Hi Billy,
    My scenario is i have two database database A and database B. Database A is having two schema's SCOTT AND HR. SCOTT schema have select privileges on HR schema.
    DB LINK is between Database B to Database A. name is db.link.B.A.oracle.com.
    What if i priovide while creating materialized view, the schema name before the table name in database B for this particuler table so it will pick up the table from that schema using same DB LINK(db.link.B.A.oracle.com.) that i am using to fetch records from SCOTT schema.
    Above schnario is like two base schema's and one db link using two schema.

  • Query on materialized view

    Hi,
    Materialized view can't be renamed, so how can I reduce the downtime for any new column addition in the materialized view.
    Regards,
    Koushik

    Agree with your reply.
    I like to do the following steps assuming there is already a materialized view created on a base table :
    1. Add any new column to the base table.
    2. Drop and recreate the mlog table.
    3. execute the statement "alter materialized view <mv_name> consider fresh" to simulate the error "ORA-12034: snapshot log on "<schema>"."<mv_name>" younger than last refresh"
    4. Create a new MV with the additional columns and with a different name.
    5. Drop the existing(old) MV.
    6. Rename the new MV with the name of the old one.
    Now this renaming is not possible. Is there any alternative way do the thing whatever I am trying to do by the above steps.
    Can you please also tell me what is use of "ENABLE QUERY REWRITE" option during creation of a materialized view.
    Thanks & Regards,
    Koushik

  • Query on Materialized View Logs

    We need a denormalised data step-up, we decided on implementing Materialized Views and started working on them. I have created Materialized View log on a table using below mentioned syntax
    CREATE MATERIALIZED VIEW LOG ON <table_name> WITH ROWID
    I have tested it and its working fine.A Strange error I am facing is, after an hour or so the materialised view gets corrupted and applicatin users gets an error saying error with the materialised view log.
    The log entry in the data dictionary gets deleted. Later I have to execute DROP on the log to completely remove it.
    I am confused how this can happen.

    What is the refresh method set as?
    Could you paste the full MV log creation script and the corresponding MV creation script.

  • Query on Materialized view and materialized view log

    I am creating a materialized view something like this.but getting following error:
    ERROR at line 1:
    ORA-12032: cannot use rowid column from materialized view log on "SCOTT"."EMP"
    SQL> create snapshot log on scott.emp;
    Materialized view log created.
    SQL> create materialized view scott_emp refresh fast on demand as select deptno,sum(sal) sum_sal from scott.emp group by deptno;
    ERROR at line 1:
    ORA-12032: cannot use rowid column from materialized view log on "SCOTT"."EMP"
    Note when i have my query in materialized view as "select * from emp;" in place of
    "select deptno,sum(sal) sum_sal from scott.emp group by deptno;" This code works fine.
    How do i have a materialized with with a group by clause.
    Thanks in Advance

    Got the answer myself.
    I wasnt adding all the required columns.
    CREATE MATERIALIZED VIEW LOG ON scott.emp
    WITH SEQUENCE, ROWID (<all the required columns>)
    INCLUDING NEW VALUES;
    Anyways,
    Thanks guys...

  • Materialized view (creating and complete refresh)

    Good day.
    I have a huge query that is used to create a materialized view. The query consist of 9 joins, a lot of aggregations, some subqueries, so we can say it is rather huge. The query itself executes for about 30 seconds and returns about 200 rows. The materialized view creates and refreshes for more than 30 minutes. Can someone please explain me the mechanism of materialized view creation which causes such bad performance.
    We use Oracle Database 9.2.0.4.
    Thank you in advance.

    I've fount the solution. May be it will be useful for someone not regarding that 9.2 database is less used today than 10.2.
    I studied carefully the plan of the query and the plan of insert statement that is used when creating materialized view and found the cause of trouble. Insert statements generates VIEW PUSHED PREDICATE and BITMAP CONVERSION FROM ROWIDS when parsing. Bitmap conversion can be removed by setting environment parameter btree_bitmap_plans to false (a well-known issue), but I decided not ot change the production environment. The pushed predicate can be removed by using hint NO_PUSH_PRED to each subquery used in a materialized view. This step reduced the time of materialized view creation and execution to about a minute.
    Thank everyone who tried to help.

  • How to find the views created on a table..?

    Hi all,
    I am having one table name, EMP. I want to know what are the views created on this table. Is there any SQL query is there for this or any another
    way to find it.
    Thanks in advance.
    Pal

    You can use ALL_DEPENDENCIES for that:
    SQL> create view emp_v as select * from emp;
    View created.
    SQL> select name
      2  ,      referenced_name
      3  ,      referenced_type
      4  from   all_dependencies
      5  where  name = 'EMP_V';
    NAME                           REFERENCED_NAME                                                  REFERENCED_TYPE
    EMP_V                          EMP                                                              TABLE
    1 row selected.
    SQL> select name
      2  ,      referenced_name
      3  ,      referenced_type
      4  from   all_dependencies
      5  where referenced_name = 'EMP';
    NAME                           REFERENCED_NAME                                                  REFERENCED_TYPE
    EMP_V                          EMP                                                              TABLE
    EMP_TRG                        EMP                                                              TABLE
    2 rows selected.
    SQL> Keep in mind that it matters whether you restrict on NAME or on REFERENCED_NAME.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_1041.htm#sthref935
    edit
    Ah, spoonfeeding!
    Don't you want him to learn something, and to become independent?Now you made me feel guilty ;) ( don't know what Saubhik posted originally, but anyway...)
    I blame my currently terribly slow connection for that...
    Anyway, OP, always start a quick search from the docs first.
    Chances are you'll find your answer yourself.
    Homes:
    http://www.oracle.com/pls/db102/homepage
    http://www.oracle.com/pls/db112/homepage
    Edited by: hoek on Oct 15, 2010 2:53 PM

  • Query on Materialized Views

    Hi,
    Could any of you please confirm that we always require a Materialized View Log on the table(s) at the Master site for FAST REFRESH to work on the Materialized View.
    If we do not have a Materialized View Log on, the Materialized View always do a COMPLETE REFRESH.
    Thanks,
    Chanjal

    http://download.oracle.com/docs/cd/E11882_01/server.112/e10713/schemaob.htm#CNCPT411

  • Create materialized view in SE referring table in EE

    Hi DBAs,
    I am trying to create a Materialized view on Oracle 10g Standard Edition which is installed on Linux Debian Lenny.
    The master table is on Oracle 10g Enterprise Edition installed on Red Hat Linux 4.1.2.
    When I run,
    create materialized view t1 build immediate refresh fast as (select * from aksharaemsmigrated.t1@db102)
    i get,
    ORA-12028: materialized view type is not supported by master site
    When I run,
    create materialized view t1 build immediate refresh fast on commit as (select * from aksharaemsmigrated.t1@db102);
    I get,
    ORA-01031: insufficient privileges
    When I run,
    select * from aksharaemsmigrated.t1@db102
    I get,
    the rows from aksharaemsmigrated.t1@db102
    NOTE: 'db102' is remote DB on 10g EE for which I created db link.
    I am able to create Mview for local table.
    Is this not supported? I mean creating Mview on Oracle SE referring base table from Oracle EE.
    I have to give solution soon. Can you please throw some light.
    Regards,
    Vijay

    Don't put select statement inside parantheses.
    Test these
    create table x1 as select * from aksharaemsmigrated.t1@db102;
    create materialized view t1 build immediate refresh fast as select * from aksharaemsmigrated.t1@db102 ;Note that you cannot create an MV that is REFRESH ON COMMIT when across Databases.
    See my explanation at http://hemantoracledba.blogspot.com/2008/06/mvs-with-refresh-on-commit-cannot-be.html
    Hemant K Chitale

  • Creation of materialized view from remote linked table

    Hi ,
    I am facing problem in creating a materialized view which is based on remote link and my query is involving one equi-join.And both table contributes around 2.75 crore rows. I am trying to create two diff views(MV) but the views are taking very much time to create. If you have any ideas or suggestions.And also I want performance I cant compromise it,so help. Please post it down.
    Thanks,

    user13104802 wrote:
    Hi ,
    I am facing problem in creating a materialized view which is based on remote link and my query is involving one equi-join.And both table contributes around 2.75 crore rows. I am trying to create two diff views(MV) but the views are taking very much time to create. If you have any ideas or suggestions.And also I want performance I cant compromise it,so help. Please post it down.
    Thanks,Welcome to the forum.
    You will need to provide more information if you are interested in getting an intelligent response to your post. It appears that you are creating 2 different MVs but the details of each are not provided, ie
    Where do each of the source tables exist, ie local or remote?
    How many rows in each?
    How will the MVs be refreshed?
    There are other considerations, ie competition for resources, processing power, network bandwidth, etc, etc.
    If all of the source tables exist on the remote database then consider creating the MV there and create a local view across the db link, or possibly, create a MV on the remote server for a subset of the remote data and link to that MV locally.

  • Help needed in query for Materialized View

    Hi,
    I want to create a materialized view which has some precalcultaed values.
    I have four dimension tables out of which one is a Time Dimension table with levels as Year->Quarter->Month.
    The precalculations are the moving averages and cummulative values of Sales Amt on the dimension values over a period of 4 Months.
    The dimension tables are Clients, Products, Channel, Time.
    Fact Table is Sales_Fact which will have the sales amount for different members of the dimension.
    Since my fact table is very huge, i want to create a materialized view where i could store the required calculated measures, here Moving Average of Sales Amt for each Client, Product, Channel dimensions over a period of 4 Months.
    Can anybody help with writing the query for this..Any help in this regard will be appreciated..
    Please give me suggestions for this..

    Check this link.
    http://download.oracle.com/docs/cd/B19306_01/server.102/b14223/aggreg.htm#sthref1612
    Regards
    Raj

  • UPDATING the query in materialized view

    Hi,
    i have a little doubt in Materialized view. i created a materialized view and log with the following query,
    create table test_mv (a number ,b number )
    alter table test_mv add constraint t_pk primary key ( a );
    insert into test_mv values (1,2);
    insert into test_mv values(2,2);
    insert into test_mv values(3,2);
    insert into test_mv values(4,2);
    insert into test_mv values(5,2);
    commit;
    CREATE MATERIALIZED VIEW LOG ON test_mv
    WITH SEQUENCE, ROWID
    *(a,b)*
    INCLUDING NEW VALUES;
    CREATE MATERIALIZED VIEW product_sales_mv
    ENABLE QUERY REWRITE
    AS SELECT  b  from test_mv;
    Now i want to update the query in the MV as 'Select a from test_mv' . for that i tried with
    *'ALTER MATERIALIZED VIEW product_sales_mv AS SELECT a from test_mv;'*
    But it throwing error,
    Error starting at line 5 in command:
    alter  MATERIALIZED VIEW product_sales_mv   AS SELECT  b  from test_mv
    Error report:
    SQL Error: ORA-00933: SQL command not properly ended
    +00933. 00000 - "SQL command not properly ended"+
    *Cause:+   
    *Action:+
    i guess i am doing wrong. kindly help me here. i want to update it without drop and recreate.
    thanks,
    Jeevanand.Ke

    Hi Jeeva,
    No. you cannot add or drop columns to the materialized view using the ALTER Statement.
    To Change the Structure of the view , drop and re-create the materialized view.
    To Alter a materialized view log, You can use the ALTER MATERIALIZED VIEW LOG. By this,
    You can add new columns to a materialized view log.
    ALTER MATERIALIZED VIEW LOG ON sggi_mrps.emp ADD(deptno);Thanks,
    Shankar
    Edited by: Shankar Viji on Aug 24, 2012 2:11 AM

  • Materialized Views created using ROLLUP

    Not sure if this one is best posted to a general Oracle forum, or even to the Discoverer Forum, but it's more to do with Data Warehousing so here goes...
    1. If I create a materialized view, either with or without OWB, do I also need to separately create indexes on the materialized view?
    2. If I create them using GROUP BY and ROLLUP (to create summaries that calculate all the subtotals along all hierarchies and dimensions), would any subsequent query have to use GROUP BY and ROLLUP to qualify for query rewrite?
    3. If I create them using GROUP BY and ROLLUP, would the queries generated by Discoverer ever get rewritten, as I assume they would not use GROUP BY and ROLLUP as these were not features found in earlier versions of Oracle?
    Any advice gratefully received.
    Mark

    Thanks for replying, Igor.
    Just to clarify:
    1. Do MV's created without fash refresh capabilities still get indexes created automatically? If not, should you manually create them in this instance?
    2. Can you confirm that, if a MV gets created using GROUP BY and ROLLUP (to potentially calculate all dimension intersections in one go), users queries to the base fact table do not have to use ROLLUP in their GROUP BY clause - they will still get rewritten ok?
    3. You mentioned that Discoverer generates queries using GROUP BY - does it ever use GROUP BY ROLLUP if it knows it's working on an Oracle 9i platform?
    I guess where i'm coming from, is that we're considering using the OLAP Summary Manager within OEM to create materialized views, rather than the normal summary adviser, as this creates MV's designed to hold (R)OLAP cubes (as detailed at http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96520/mv.htm#574241). I wouldn't however want to use these if user's queries had to specify ROLLUP in their GROUP by clause to qualify for query rewrite.
    Getting back to OWB, are there any plans to improve the support for importing, designing and refreshing materialized views in the Paris release of OWB? Summary management is perhaps a bit of a weak spot in OWB, and it'd be good if Hierarchical Cube Materialized Views - which are an excellent new feature in 9i - were supported in future releases.
    best regards
    Mark Rittman

  • Questions on Materialized Views and MV Log tables

    Hello all,
    Have a few questions with regards to Materialized View.
    1) Once the Materialized View reads the records from the MLOG table the MLOG's records get purged. correct? or is it not the case? In some cases I still see (old) records in the MLOG table even after the MV refresh.
    2) How does the MLOG table distinguish between a read that comes from an MV and a read that comes from a user? If I manually execute
    "select * from <MLOG table>" would the MLOG table's record get purged just the same way as it does after an MV refresh?
    3) One of our MV refreshes hangs intermittently. Based on the wait events I noticed that it was doing a "db file sequential read" against the master table. Finally I had to terminate the refresh. I'm not sure why it was doing sequential read on the master table when it should be reading from the MLOG table. Any ideas?
    4) I've seen "db file scattered read" (full table scan) in general against tables but I was surprised to see "db file sequential read" against the table. I thought sequential read normally happens against indexes. Has anyone noticed this behaviour?
    Thanks for your time.

    1) Once all registered materialized views have read a particular row from a materialized view log, it is removed, yes. If there are multiple materialized views that depend on the same log, they would all need to refresh before it would be safe to remove the MV log entry. If one of the materialized views does a non-incremental refresh, there may be cases where the log doesn't get purged automatically.
    2) No, your query wouldn't cause anything to be purged (though you wouldn't see anything interesting unless you happen to implement lots of code to parse the change vectors stored in the log). I don't know that the exact mechanism that Oracle uses has been published, though you could go through and trace a session to get an idea of the moving pieces. From a practical standpoint, you just need to know that when you create a fast-refreshable materialized view, it's going to register itself as being interested in particular MV logs.
    3) It would depend on what is stored in the MV log. The refresh process may need to grab particular columns from the table if your log is just storing the fact that data for a particular key changed. You can specify when you create a materialized view log that you want to store particular columns or to include new values (with the INCLUDING NEW VALUES) clause. That may be beneficial (or necessary) to the fast refresh process but it would tend to increase the storage space for the materialized view log and to increase the cost of maintianing the materialized view log.
    4) Sequential reads against a table are perfectly normal-- it just implies that someone is looking at a particular block in the table (i.e. looking up a row in the table by ROWID based on the ROWID in an index or in a materialized view log).
    Justin

  • Help with sql query on materialized view logs

    I am in need of a query to find out what tablespace and snap shot site a long list of materialized view logs are associated with.
    something like below except tablespace and snap_shot_site are not an option for this table.
    select log_owner, master, log_table, tablespace, snap_shot_site from dba_mview_logs;

    What is the refresh method set as?
    Could you paste the full MV log creation script and the corresponding MV creation script.

Maybe you are looking for

  • Settlement of WBS - KI235 - Account Requires an Assignment to a CO Object

    Hello, Im having an issue when running settlement on a WBS Element.  The settlement rule on the WBS element indicates that settlement is to be charged to GL Account 629080.  I checked the WBS Element, and there is a cost centre entered on the settlem

  • Premiere CS6 reference monitor blacks out!!

    I am using PPCS6 on a windows 7 machine and it has been fine up until today, now the reference monitors on screen and my external monitors just keep going black and I have to save, exit and open it again for clear it but it only lasts a couple of min

  • Creating a Physical Standby Database

    Hi, I'm reading Oracle® Data Guard Concepts and Administration 10g Release 2 (10.2) B14239-04. In 3.2 Step-by-Step Instructions for Creating a Physical Standby Database chapter it says : 3.2.1 Create a Backup Copy of the Primary Database Datafiles an

  • Setting an exception so that the phone will ring while in quiet mode

    Is it possible to turn my phone to the "quiet" profile and still have it ring for the people I have listed as important calls?  I called technical support at Telus, and they told me that it was not possible.  Ideally I would like to turn it to quiet

  • Screwed up MBR and boot partition, can't fix it [SOLVED]

    Hi, I have been defeated. Been trying to fix my computer the whole day and know I'm lost. It's a long story, but my whole system got screwed when I tried installing windows on top of arch (I didn't get it to install, but I don't care anymore). I was