Re: MV complete refresh transactions

From: Roman Podshivalov <roman.podshivalov_at_gmail.com>
Date: Tue, 9 Sep 2008 18:47:33 -0400
Message-ID: <55f303590809091547x35f6fb02y2a27108f0799a799@mail.gmail.com>


Jared,

You run into very well documented feature. Answer to your question is a last sentence of the paragraph.

http://download.oracle.com/docs/cd/B10501_01/server.920/a96567/reptrouble.htm#8549

Complete refreshes of a single materialized view internally use the TRUNCATEfeature to increase speed and reduce rollback segment requirements. However,
until the materialized view refresh is complete, users may temporarily see no data in the materialized view. Refreshes of multiple materialized views (for example, refresh groups) do not use the TRUNCATE feature.

--romas

On Tue, Sep 9, 2008 at 6:16 PM, Jared Still <jkstill_at_gmail.com> wrote:

> Just ran into something unexpected.
>
> When doing a complete refresh on a materialized view, the deletion of the
> rows
> appears to be a different transaction than the insertion of new rows.
>
> This is not an issue that is affected by ATOMIC_REFRESH => [TRUE|FALSE]
>
> If I do a complete refresh on an MV in one session, a query against the MV
> from
> another session returns 0 rows for a period of time while the data is being
> refreshed.
>
> This is on 9.2.0.6 on Linux.
>
> Until and unless I find a workaround for MV, this is being built as a
> regular table,
> with a procedure using a transaction to delete and insert rows every 15
> minutes.
>
> The manual method works as expected, no interruptions from user queries.
>
> The refresh must be complete BTW, no way around it.
>
> Anyone know a way around the MV issue?
>
> The manual method works, it just is somewhat of a kludge.
>
> --
> Jared Still
> Certifiable Oracle DBA and Part Time Perl Evangelist
>
>

--
http://www.freelists.org/webpage/oracle-l
Received on Tue Sep 09 2008 - 17:47:33 CDT

Original text of this message