Materialized View Log - Compress Clause for List Partition

Hi All,
In Syntax diagram it states that Compress Clause for List Partition of Materialized View Log is valid , but when we run any script with compress clause for list partition on Materialized view log then Database throws error as ORA-14020: this physical attribute may not be specified for a table partition
So in any chance we can have the compress clause for the partition of materialized view log.
Thanks in advance,
Manu.

The "CREATE MATERIALIZED VIEW LOG" syntax refers to the "Table Partitioning" section of the CREATE TABLE documentation.
The "Table Partitioning" section refers to "table_partition_description" which then refers to "table_compression". "table_compression" then states that you can specify compression for entire table in the physical_properties clause and for range partition / list partition in the "table_partition_description". The Restrictions section on Table Compression says "You cannot define table compression explicitly for hash partitions or hash and list subpartitions" which implies that you can define partition for list partitions.
Moreover, error 14020 lists valid options for Range or Composite Range and for Hash partitoins -- which implies that all other Table physical attributes are applicable for List partitions. (But then, is Compression a physical attribute -- it is really part of "physical properties" not "physical attributes").
I think that the documentation isn't explicit enough and needs to be fixed.
N.B : Referencing the 10.2 documentation.
Hemant K Chitale
Edited by: Hemant K Chitale on Feb 1, 2010 4:12 PM

Similar Messages

  • Create Materialized View with Compress clause

    Hi,
    Oracle 9i R2 has an option to use compress clause while creating table, materialized view or etc. Just wanted some help on tips to be followed during creating a materilized view with compress clause and refresh the same.do i need to follow any special procedures ??? Any help greatly appreciated.
    Thanks,
    Chak.

    I read in the book that while inserting user /+append+/ otherwise table with compress will fail. I am doing materialized view refresh with fast mode and data will be inserted as per logs residing at master site.. while inserting into materialized view, do i have to setup specially since fast refresh is going to insert data into existing materialized view.
    Thanks,

  • Will Materialized view log reduces the performance of DML statements on the master table

    Hi all,
    I need to refresh a on demand fast refresh Materialized view in Oracle 11GR2. For this purpose I created a Materialized view log on the table (Non partitioned) in which records will be inserted @ rate of 5000/day as follows.
    CREATE MATERIALIZED VIEW LOG ON NOTES NOLOGGING WITH PRIMARY KEY INCLUDING NEW VALUES;
    This table already has 20L records and adding this Mview log will reduce the DML performance on the table ?
    Please guide me on this.

    Having the base table maintain a materialised view log will have an impact on the speed of DML statements - they are doing extra work, which will take extra time. A more sensible question would be to ask whether it will have a significant impact, to which the answer is almost certainly "no".
    5000 records inserted a day is nothing. Adding a view log to the heap really shouldn't cause any trouble at all - but ultimately only your own testing can establish that.

  • 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.

  • Disabling Materialized View Logs for a session

    Hi all.
    I was wondering if it is possible to disable the fast refresh log for materialized views for just a given session. So for all other sessions except this one the log would be added to. I'm using 11g.
    In Oracle Database 11g, The Complete Reference on page 447 it states:
    "As of Oracle 11g, the capture of changes in materialized view logs can be disabled for an individual session while logging continues for changes made by other sessions". But no instructions are given
    Does anyone know how to do this? I have not been able to find the answer by looking around.
    Thanks!

    Yeah, I had saw that Oracle mentioned it here also: http://download.oracle.com/docs/cd/B28359_01/server.111/b28279/chapter1.htm#FEATURENO07197
    Any idea of what the code might look like? I've never had to alter an individual session for Oracle before.

  • Materialized view logs for Fast refreshes

    Hi,
    I created MV and MV logs on the base table/main table. I set the base table in NOLOGGING MODE. so ofcourse redo is not gonna generate during DML but i wanted to know that:
    Will NOLOGGING effect the MV logs for fast refreshes?
    I came up on conclusion that MV logs are nothing to do with Redo Logs and would have no impact on MV logs for fast refresh since i have set my all base table in NOLOGGING MODE.
    Looking forward for expert opinion.
    REGARDS,

    Though I'm not an expert...
    SQL> alter table emp nologging;
    Table altered.
    SQL> create materialized view log on emp;
    Materialized view log created.
    SQL> select * from tab;
    TNAME TABTYPE CLUSTERID
    EMP TABLE
    BONUS TABLE
    SALGRADE TABLE
    RUPD$_EMP TABLE
    MLOG$_EMP TABLE
    SQL> insert into emp values(1000,'Matt','Test',100,sysdate,1000,1000,10,11,11);
    1 row created.
    SQL> select *From mlog$_emp;
    EMPNO SNAPTIME$ D O
    CHANGE_VECTOR$$
    1000 01-JAN-00 I N
    FEFF

  • Creation of Materialized view and Materialized view log.

    I wanted to create materialized view with 'REFRESH FAST ON COMMIT' option.
    1) Table1 --it is partitioned range + list -- Added primary key
    2) view1   -- having primary keys on view's base table
    Steps:
    1) create materialized view log on Table1 ; -- default primary key
    2) create materialized view log on view1.  --- It is giving below error.
    ORA-00942: table or view does not exist
    i wanted to create Materialized view like below
    create materialized view
    REFRESH fast ON commit
    as
    select ...
    ... from table1
    where c1 in (select c1 from view1 where ... );
    Question:
    1) As i am getting above error while creating MV log on view. Can we create MV log on view or we have to create MV log on view base table?
    2) To create MV with ''REFRESH FAST ON COMMIT' option , do we need to have primary key on master tables? 
    Any pointers on this will really helpful.
    Thanks
    Prasad

    Also created MV LOG on 3 tables and tried with joins ..
    create materialized view
    REFRESH fast ON commit
    as
    select ...
    ... from table1 , tab2 t2,tab3 t3
    where ....
    and ...
    Get same error ORA-12052: cannot fast refresh materialized view AVSYS.EVENT_LOG_MV
    2052. 00000 -  "cannot fast refresh materialized view %s.%s"
    *Cause:    Either ROWIDs of certain tables were missing in the definition or
               the inner table of an outer join did not have UNIQUE constraints on
               join columns.
    *Action:   Specify the FORCE or COMPLETE option. If this error is got
               during creation, the materialized view definition may have be
               changed. Refer to the documentation on materialized views.

  • 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.

  • Materialized View Logs

    Hi, I need some help understanding MV Logs. The information I find on MV Logs, is very basic, ie. the general syntax of creating a log, the types of logs, how they are refreshed etc.
    Let me put my question this way. I want to create an MV, with a where clause that joins 3 tables. This should be simple enough. But how does the LOG(s) work ? Is there an MV Log for each table in the where-clause of the select statement ?
    And, is there only 1 way of creating an MV Log? CREATE MATERIALIZED VIEW LOG ON mis.prov_cat_link with .......
    Can't I specify the columns I want to "log" ? What if the select statement in my MV create statement only selects certain columns, and not all ? Maybe if I understand how the log works, I will understand the logic behind it, and how to create it.
    I hope the above makes sense !

    Using the WITH clause you can provide filter columns that are stored in the MV log.
    Mike

  • SELECT PRIVILEGES required on Materialized View Logs

    Hi,
    I have a scenario where in Base table exists in one database and Materialized View on other.
    The Materialized View is created with FAST REFRESH option.
    I have created Materialized View Log in database where master table exists.
    Also I have given Select priv on master table to the user(where MV is created).
    I want to know how will i Grant SELECT PRIV on Materialized View Log so that FAST refresh happens.
    Both databases are Oracle 10g R2.
    I have read following on oracle site:
    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.
    Please tell me the command to GRANT SELECT to the user who has created MV.
    Thank You,
    Niranjan.

    Hi,
    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:
    1- Grant CREATE MATERIALIZED VIEW system privilege and either the CREATE TABLE or CREATE ANY TABLE system privilege.
    2-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:
    1-You must have the CREATE ANY MATERIALIZED VIEW system privilege.
    2-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.
    see this link
    http://download.oracle.com/docs/cd/B12037_01/server.101/b10759/statements_6002.htm

  • Materialized View Log not empty

    Hello all
    I have an oracle database (11g version), connecting via dbLink to another DB (10g version), and using it's tables as masters for fast refresh materialized views.
    To make it simple: I have master DB, with master table X, and Materialized View Log MLOG$_X.
    Then, I have replicate DB, with dblink pointing to Master, and Materialized View MV_X, using X.
    The materialized view is refreshed fast, on demand.
    The problem is, the MV log is never getting empty... how can I solve this issue?
    /* code for creating MView */
    CREATE MATERIALIZED VIEW "MY_USER"."SI_BANK" ("ID", "NAME", "ACRONYM")
      ORGANIZATION HEAP PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
      STORAGE(INITIAL 163840 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
      PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
      TABLESPACE "USERS"
      BUILD IMMEDIATE
      USING INDEX
      REFRESH FAST ON DEMAND START WITH sysdate+0 NEXT SYSDATE + 1
      WITH PRIMARY KEY USING DEFAULT LOCAL ROLLBACK SEGMENT
      USING ENFORCED CONSTRAINTS DISABLE QUERY REWRITE
      AS SELECT ibanco id, nbanco name, nsigla acronym FROM USER.tgtbanc0@DB_LINK;
    /* code for refresh group*/
    BEGIN
      DBMS_REFRESH.MAKE ( name => 'si2p_grp',
      list => '', next_date => 'SYSDATE +1' , interval => 'SYSDATE + 1', implicit_destroy => FALSE, rollback_seg => '', push_deferred_rpc => TRUE, refresh_after_errors => FALSE);
    END;
    /* ADD MATERIALIZED VIEWS TO GROUP */
    BEGIN
        DBMS_REFRESH.ADD ( name => 'si2p_grp', list => 'SI_BANK', lax => TRUE);
    END;
    Thank you for any help

    One MV log serve to many materialized views. Check dba_registered_mviews on master DB to see how many MViews you have build on you master table X.
    After MV (materialized view) is refreshed than all data logged in MVlog for this MV are deleted. But new are recorded when DML are performed against table X.
    If you can stop DML on table X for some period of time then do MV refresh and then you can see that MVlog is empty.

  • Bug: Can not create materialized view log on 11G XE

    Hi,
    I log in as HR user and try create materialized view log
    CREATE MATERIALIZED VIEW LOG ON HR.EMPLOYEES;I get error
    >
    Error starting at line 1 in command:
    CREATE MATERIALIZED VIEW LOG ON HR.EMPLOYEES
    Error at Command Line:1 Column:0
    Error report:
    SQL Error: ORA-00439: feature not enabled: Advanced replication
    00439. 00000 - "feature not enabled: %s"
    *Cause:    The specified feature is not enabled.
    *Action:   Do not attempt to use this feature.
    >
    You can create materialized view log on 10G XE without any problem.
    Regards,
    Jari
    http://dbswh.webhop.net/dbswh/f?p=BLOG:HOME:0

    Is it a bug in 11g or 10g?
    It was reported earlier in now archived beta forum. {thread:id=2214092}
    The current doc lists MV sites only (and "No" for Advanced Replication feature):
    http://download.oracle.com/docs/cd/E17781_01/license.112/e18068/toc.htm#BABDFDAI

  • Creating a Materialized View Log After the Data has been instered

    Hi,
    I am trying to create a method of replication from Oracle to MySQL using the Materialized View Log table.
    This has been done before and works quite well, the only problem is that I am trying to impliment the log after the table has been created and populated and wish to push all the existing data through the log file...
    Does anyone know if it is possible to refresh the Materialized View Log and not a Materialized View.
    The way the replication is intended to work is:
    Oracle> Data inserted into table
    Oracle> writes the vector data to the MVL
    Script> Monitors the MVL and can see the changes being made to the Oracle Table
    Script> Updates MySQL with the data and removes the rows from the MVL
    MySQL is then used with other unix systems
    Currently we export the data from the table using Triggers and a cronjob running every x minute to check for changes in the TriggerTables
    Many thanks for your time on this, I have been checking for almost a whole working day and not found the answer to this problem.

    Thats what I thought, the MVL will only read data that has changed since it was created and wont have the option to load in all the data as though it was made before the table was created.
    From what I have read, the MVL is quicker than a Trigger and I have some free code that prooved to work from a MVL using it as a reference to know what records to update. There is not that much to a MVL, a record ID and type of update, New, Update or Delete.
    I think what I will have to do is work on a the same principle for the MVL but use a Trigger as this way we can do a full reload if required at any point.
    Many thanks for your help.

  • 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

  • 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

Maybe you are looking for

  • EA2: ORA-01427 clicking on a view in the navigator

    SQLDev: 1.5.0.52.03 Java: 1.6.0_04 Oracle: 9.2.0.7.0 I'm getting the following error when I click on a view in the navigator pane: An error was encountered performing the requested operation: ORA-01427: single-row subquery returns more than one row 0

  • Auto-duplicate OR NOT  save as a Template

    Hello all, How can I open a Template in Pages and have it auto-duplicate itself, OR even better, NOT have it save as a Template UNTIL I give that command and overwrite the current Template.

  • System.log filling with error messages

    After SL update my system.log if filling with error messages. Does any process delete the system.log periodically? What's causing this error? Getting thousands of them. 9/30/09 12:08:13 PM [0x0-0x12012].com.nowsoftware.nowxagent[181] at now.swing.NPr

  • Grouping Textframe and rectangle object ID Server CS4

    Below code for simple grouping objects is not working. Since there is not selection in ID Server CS4. ID Server CS4 Vb.net Dim FigGp As InDesignServer.Objects Dim obj As InDesignServer.Objects obj.Add(rect.Index) 'throwing exception Object reference

  • Essbase Excel Add-in

    After installing the most recent microsoft patches, users on Office 2000/ Windows 2000 are unable to use the Essbase/ Options menu while connected to a database.They receive an excel.exe error message and are booted out of excel.Has anyone seen this