We have a situation where a process can't insert into a partition of a
partitioned table. The process just keeps running. 
- A stored procedure executes a SQL insert statement (listing below).
- It normally completes in 30 minutes, but now just runs for hours.
- Oracle 8.1.6 on Dec/Compaq/HP Alpha 
- In tracing the process, it is waiting on "db file scattered read". 
- This is a relatively new process, but it has completed successfully twice
in production and numerous times in test. 
- I was able to perform a simple insert into the partition. 
- I created a test table (non-partitioned) and the process worked fine
there, completing in the normal 30 minutes.
- I rebuilt the partition (drop partition and create partition), to no
effect. 
I'm stumped and looking for any suggestions:

Dennis Williams
DBA, 80%OCP, 100% DBA
Lifetouch, Inc.
[EMAIL PROTECTED] 

Here is the SQL and the explain plan:


> SQL> explain plan for
>   2  INSERT /*+ APPEND  */INTO CURRJOBFACT NOLOGGING 
>   3  ( bunch of columns )
>  21    SELECT /*+ use_hash(cjs, ps. md, a, o, x, wv, apc, wv1)  */
>  22  CJS.JOBNBR,CJS.SOURCEFISCALYEAR,CJS.LIFETOUCHID,MD.PROGRAMID,
>  23  CJS.MARKETINGCODE,CJS.PLANTRECEIPTDATE,CJS.PHOTOGRAPHYDATE,
>  24
> CJS.SHIPDATE,CJS.SELLINGMETHODCODE,CJS.MDRPRIMARYID,CJS.SUBPROGRAMCODE,
>  25  CJS.TERRCODE,CJS.SUBTERRCODE,CJS.BIDIND,CJS.PDKIND,CJS.PDKPARTNBR,
>  26  CJS.RETAKEIND,
>  27
> TO_NUMBER(TRANSLATE(UPPER(SUBSTR(CJS.JOBNBR,10,1)),'ABCDEFGHIJKLMNOPQRSTUV
> ,
>  28    DECODE(TO_DATE(CJS.SHIPDATE,'YYYY/MM/DD'), NULL ,'N','Y'),
>  29    DECODE(NVL(GREATEST(CJS.YTDCASHRECEIVEDAMT,0),0),0,
>  30    DECODE(CJS.PAYSTATUSIND,'F','Y','N'),'Y') PAIDJOBIND,
>  31  CJS.PAYSTATUSIND,PS.PAIDSHIPPEDJOBIND,
>  32  DECODE(SUBSTR(CJS.JOBNBR,9,1),'I','Y','N') PREJOBIND,CJS.PLANTCODE,
>  33
> CJS.SHOTQTY,PS.MTDSHIPPEDPKGQTY,PS.MTDCHARGEBACKAMT,PS.MTDTERRCMSNAMT,
>  34  NVL(PS.MTDTERRCMSNAMT,0) - NVL(PS.MTDCHARGEBACKAMT,0)
> ,PS.MTDCASHRECEIVEDA,
>  35  PS.MTDCASHRETAINEDAMT,PS.MTDESTACCTCMSNAMT,PS.MTDACCTCMSNPAIDAMT,
>  36
> PS.MTDGROSSCASHAMT,PS.MTDSALESTAXAMT,CJS.YTDSHIPPEDPKGQTY,CJS.YTDCHARGEBAC
> ,
>  37  CJS.YTDTERRCMSNAMT,CJS.YTDTERREARNINGSAMT,CJS.YTDCASHRECEIVEDAMT,
>  38  CJS.YTDCASHRETAINEDAMT,CJS.YTDESTACCTCMSNAMT,CJS.YTDACCTCMSNPAIDAMT,
>  39  CJS.YTDCASHRECEIVEDAMT +YTDESTACCTCMSNAMT  + YTDACCTCMSNPAIDAMT ,
>  40  CJS.YTDSALESTAXAMT,CJS.YTDPERFECTSALEAMT,PS.PRELIMYTDSHIPPEDPKGQTY,
>  41  PS.PRELIMYTDCHARGEBACKAMT,PS.PRELIMYTDTERRCMSNAMT,
>  42  PS.PRELIMYTDTERRCMSNAMT - PS.PRELIMYTDCHARGEBACKAMT
> ,PS.PRELIMYTDCASHRECEI,
>  43  PS.PRELIMYTDCASHRETAINEDAMT,PS.PRELIMYTDESTACCTCMSNAMT,
>  44
> PS.PRELIMYTDACCTCMSNPAIDAMT,PS.PRELIMYTDGROSSCASHAMT,PS.PRELIMYTDSALESTAXA
> ,
>  45  PS.PRELIMYTDPERFECTSALEAMT,CJS.YTDJTEPAIDPKGQTY,CJS.YTDPAIDPKGQTY,
>  46  CJS.YTDUNPAIDPKGQTY,CJS.YTDXNOPURCHASEQTY,PS.YTDPAIDPKGSHIPQTY,
>  47
> PS.YTDUNPAIDPKGSHIPQTY,CJS.PROOFPOSEQTY,CJS.PROOFCOUNTQTY,CJS.EXTRACTDATE,
>  48  CJS.ORIGINALRECEIVEDDATE,PS.CMSNSTATUSCODE,WV1.FIRSTPOSITIVECASHDATE,
>  49  DECODE(C.LIFETOUCHID, NULL ,'New','Retained') RENEWALSTATUSCODE,
>  50  NVL(WV.PRELIMYTDESTACCTCMSNAMT,
>  51  DECODE(NVL(PS.PRELIMYTDESTACCTCMSNAMT,0),0, NULL
> ,PS.PRELIMYTDESTACCTCMSNA,
>  52  APC.AVGPKGPRICE
>  53  FROM CURRJOB_STAGE CJS,PERIOD_STAGE PS,MARKETINGDIM MD,
>  54  (SELECT A1.JOBNBR,DECODE(SUM(PAIDOFFERQTY),0,0,
>  55  SUM(A1.OFFERPRICEAMT * A1.PAIDOFFERQTY ) / SUM(A1.PAIDOFFERQTY) )
> AVGPKGPR 
>  56     FROM (SELECT DISTINCT
> A.JOBNBR,A.OFFERNAME,A.PAIDOFFERQTY,A.OFFERPRICEAT
>  57           FROM OFFERLOAD_STAGE A  
>  58           WHERE A.OFFERNAME IN (
> 'A','B','C','D','E','F','G','H','I','J','K 
>  59  GROUP BY A1.JOBNBR ) APC,
>  60  (SELECT DISTINCT C.LIFETOUCHID,C.PROGRAMID,MD.MARKETINGCODE   
>  61  FROM CURRJOBFACT C,MARKETINGDIM MD  WHERE C.SOURCEFISCALYEAR < 2004  
>  62  AND C.MARKETINGCODE = MD.MARKETINGCODE ) C,
>  63  (SELECT JOBNBR,MIN(DEPOSITDATE) FIRSTPOSITIVECASHDATE   
>  64      FROM CASHTXNFACT  
>  65      WHERE SOURCEFISCALYEAR = 2004  GROUP BY JOBNBR ) WV1,
>  66  (SELECT X.JOBNBR,X.WEEKENDDATE,X.PRELIMYTDESTACCTCMSNAMT   
>  67      FROM WKLYJOBFACT X,
>  68  (SELECT JOBNBR,MAX(WEEKENDDATE) MAXWEEKENDDATE   
>  69      FROM WKLYJOBFACT  WHERE SOURCEFISCALYEAR = 2004  
>  70        AND NVL(PRELIMYTDESTACCTCMSNAMT,0) > 0  
>  71      GROUP BY JOBNBR ) W1  
>  72   WHERE X.JOBNBR = W1.JOBNBR  AND X.WEEKENDDATE = W1.MAXWEEKENDDATE )
> WV  
>  73  WHERE CJS.JOBNBR = PS.JOBNBR (+)    
>  74  AND CJS.JOBNBR = APC.JOBNBR (+)    
>  75  AND CJS.MARKETINGCODE = MD.MARKETINGCODE  
>  76  AND CJS.LIFETOUCHID = C.LIFETOUCHID (+)    
>  77  AND CJS.MARKETINGCODE = C.MARKETINGCODE (+)    
>  78  AND CJS.JOBNBR = WV1.JOBNBR (+)    
>  79  AND CJS.JOBNBR = WV.JOBNBR (+);
> 
> Explained.
> 
> SQL> @explain
> 
> Query Plan
> --------------------------------------------------------------------------
> ------
> INSERT STATEMENT   Cost = 181253
>   LOAD AS SELECT
>     HASH JOIN OUTER
>       HASH JOIN OUTER
>         HASH JOIN OUTER
>           HASH JOIN OUTER
>             HASH JOIN OUTER
>               HASH JOIN
>                 TABLE ACCESS FULL MARKETINGDIM
>                 TABLE ACCESS FULL CURRJOB_STAGE
>               VIEW
> 
> Query Plan
> --------------------------------------------------------------------------
> ------
>                 SORT GROUP BY
>                   VIEW
>                     SORT UNIQUE
>                       TABLE ACCESS FULL OFFERLOAD_STAGE
>             VIEW
>               SORT GROUP BY
>                 TABLE ACCESS FULL CASHTXNFACT
>           VIEW
>             SORT UNIQUE
>               NESTED LOOPS
>                 PARTITION RANGE ITERATOR
> 
> Query Plan
> --------------------------------------------------------------------------
> ------
>                   TABLE ACCESS FULL CURRJOBFACT
>                 INDEX UNIQUE SCAN SYS_C00889
>         TABLE ACCESS FULL PERIOD_STAGE
>       VIEW
>         HASH JOIN
>           VIEW
>             SORT GROUP BY
>               PARTITION RANGE ALL
>                 TABLE ACCESS FULL WKLYJOBFACT
>           PARTITION RANGE ALL
>             TABLE ACCESS FULL WKLYJOBFACT
> 
> 33 rows selected.
> 
> 
> Table truncated.
> 
> SQL>
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: DENNIS WILLIAMS
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

Reply via email to