Re: Big Complex MV creation and Refresh

  • From: "Sanjay Mishra" <dmarc-noreply@xxxxxxxxxxxxx> (Redacted sender "smishra_97" for DMARC)
  • To: dmarc-noreply@xxxxxxxxxxxxx, Chris Taylor <christopherdtaylor1994@xxxxxxxxx>
  • Date: Fri, 13 Apr 2018 23:35:19 +0000 (UTC)

 Chris
Thanks for the update and also suggestion for Atomic refresh and yes I am 
planning to use it along with out of refresh due to large time of refresh
So in Definiton of View I had
Select Multiple Columns from    (select * from table where condition) table1   
(select * from table where condition) table2   (select * from table where 
condition) table3
....   (select * from table where condition) tablenNwhere    multiple Join 
Condition
So Do I need to PUT multiple at select /* parallel(20) */ and/or  All select at 
table1,table2
Trying to understand if it has to be done on all select
Thanks again for your time and suggestion
Sanjay


    On Friday, April 13, 2018, 6:41:08 PM EDT, Chris Taylor 
<christopherdtaylor1994@xxxxxxxxx> wrote:  
 
 Well, if you really want to use parallel,I think you put the parallel hint in 
the TEST_VIEW definition.
Also on your refresh you can set atomic=false but that truncates the MVIEW 
which is great as long as no one is using it.  If people are still going to be 
using it, don't use atomic=false.  (Normal MVIEW refreshes do deletes and 
inserts which is very expensive when you don't have materialized view logs 
available).
Chris

On Fri, Apr 13, 2018 at 5:00 PM, Sanjay Mishra <dmarc-noreply@xxxxxxxxxxxxx> 
wrote:

Hi
I had a View which is Select from multiple Tables and joins. Selecting data 
from it take lots of time and been used extensively. I am planning to create MV 
on it as Data from View is only changed once a week. There are time when this 
view is not accessed and so can use the timeframe.
Question is 1. If I use create MV with parallel  and select * from View; will 
be paralleling. I  used this method and it took 16hr to refresh. Not sure how I 
can more advantage with Parallel Query to speed up the creation and there after 
Refresh. Is following will help where View is based on multiple tables and not 
sure Paralle Select from view can help  Original Def    create Materialized 
view test parallel 20 refresh with rowid as select * from test_view;  Or this 
will be better    create Materialized view test parallel 20 refresh with rowid 
as select /*+parallel(10) */* from test_view;  Or I had to change the view 
defintion to also include Parallel in all Select in it to
Trying to understand as how Parallel Query can help. None of the table involved 
in the view are partitioned. 
2. Checking few sites and came to know Refresh will not be Parallel unless all 
select has parallel in it. As otherwise refresh will be serial.

thanks for suggestion and any reference 
Sanjay

  

Other related posts: