Re: Tuning Advice

  • From: Jonathan Lewis <jonathan@xxxxxxxxxxxxxxxxxx>
  • To: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
  • Date: Fri, 27 Apr 2018 18:30:07 +0000

What do the two plans look like, and how different are the OUTLINE sections - 
are there any clues about features being blocked (or forced) in one but not the 
other.

Regards
Jonathan Lewis

________________________________________
From: Sheehan, Jeremy <JEREMY.SHEEHAN@xxxxxxx>
Sent: 27 April 2018 19:25
To: christopherdtaylor1994@xxxxxxxxx; Jonathan Lewis
Cc: ORACLE-L
Subject: RE: Tuning Advice

One time there was 2mm records in the table, but most of the time the table was 
truncated prior to trying it out. Either way, it runs with the bad execution 
plan and never finishes.


From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On ;
Behalf Of Chris Taylor
Sent: Friday, April 27, 2018 2:20 PM
To: jonathan@xxxxxxxxxxxxxxxxxx
Cc: ORACLE-L <oracle-l@xxxxxxxxxxxxx>
Subject: Re: Tuning Advice

CAUTION - EXTERNAL EMAIL


Jonathan touches on another important question.

How much data is in this table you're inserting into AND has the table been 
having "DELETES" on it?  You might could try a simple "INSERT /*+ append */ 
hint if the problem is looking for free space in the table below the HWM.

Chris


On Fri, Apr 27, 2018 at 12:54 PM, Jonathan Lewis 
<jonathan@xxxxxxxxxxxxxxxxxx<mailto:jonathan@xxxxxxxxxxxxxxxxxx>> wrote:
The commonest resolution of that type of problem is that "select" may be 
running under first_rows(n) optimization which changes to all_rows as soon as 
you change the query to "insert as select"; alternatively the plan for a 
distributed select can do some optimizations that "insert as distributed 
select" can't.

In your case, though, you say a CTAS is just as fast as a select - and in both 
the above CTAS would have the same problem as "insert as select".

This isn't just a  case of your insert maintaining indexes while your CTAS 
doesn't have any indexes ?

Regards
Jonathan Lewis
________________________________________
From: oracle-l-bounce@xxxxxxxxxxxxx<mailto:oracle-l-bounce@xxxxxxxxxxxxx
<oracle-l-bounce@xxxxxxxxxxxxx<mailto:oracle-l-bounce@xxxxxxxxxxxxx>> on behalf 
of Sheehan, Jeremy <JEREMY.SHEEHAN@xxxxxxx<mailto:JEREMY.SHEEHAN@xxxxxxx>>
Sent: 27 April 2018 16:50
To: ORACLE-L
Subject: Tuning Advice

Hello Gurus,

Oracle 12.1.0.2
AIX 7.1

I have a query that runs fairly well. Takes about 8 minutes to run, nothing 
terrible about it (no huge FTS, joins seem to be in place correctly). When I 
try to do an insert into TABLE as SELECT, it picks a completely different 
execution plan and never finishes. The really odd thing is that it works great 
when using CTAS or initial creation of a MV.

Any suggestion on how I can have the optimizer not use a specific execution 
plan or any session level parameters that would have it use a different 
execution plan?

Thanks in advance!

Jeremy
--
//www.freelists.org/webpage/oracle-l


--
//www.freelists.org/webpage/oracle-l


Other related posts: