Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Query running long when running with application

Anand YadavNov 12 2017 — edited Jan 4 2018

DB Details:

Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production

PL/SQL Release 12.1.0.2.0 - Production

CORE 12.1.0.2.0 Production

TNS for IBM/AIX RISC System/6000: Version 12.1.0.2.0 - Production

NLSRTL Version 12.1.0.2.0 - Production

Hi  ,

I have a update query that run's for 1 hour when executed by java process but finishes in 6 seconds if executed standalone .

Below is the query details and the plan.

UPDATE                                               /* LevelSKU_itemHint_3 */

      ITEM i

   SET i.PlanLevel =

          NVL (

             (SELECT MAX (s.PlanLevel + 1)

                FROM SKU s

               WHERE s.item IN (SELECT                   /*

LevelSKU_skuwhuitemHint */

                                       /*LevelSKU_skuwhuItemHint*/

                                        ParentItem

                                  FROM SKUWHEREUSED skuwhu

                                 WHERE     skuwhu.SubordItem = i.item

                                       AND skuwhu.ParentItem <> i.item)),

             -1)

WHERE i.PlanLevel = -1;

Plan hash value: 3213331517

------------------------------------------------------------------------------------------------

| Id  | Operation               | Name                | E-Rows |E-Bytes| Cost (%CPU)| E-Time   |

------------------------------------------------------------------------------------------------

|   0 | UPDATE STATEMENT        |                     |        |       |    47M(100)|          |

|   1 |  UPDATE                 | ITEM                |        |       |            |          |

|*  2 |   TABLE ACCESS FULL     | ITEM                |  15461 |  1932K|   112   (0)| 00:00:01 |

|   3 |   SORT AGGREGATE        |                     |      1 |    27 |            |          |

|*  4 |    HASH JOIN RIGHT SEMI |                     |   2604K|    67M|  3095   (1)| 00:00:01 |

|*  5 |     INDEX RANGE SCAN    | SKUWHEREUSED_PARSUB |   6892 |   114K|    23   (0)| 00:00:01 |

|*  6 |     INDEX FAST FULL SCAN| SKU_IDX3677         |   5983K|    57M|  3061   (1)| 00:00:01 |

------------------------------------------------------------------------------------------------

Query Block Name / Object Alias (identified by operation id):

-------------------------------------------------------------

   1 - UPD$1     

   2 - UPD$1        / I@UPD$1

   3 - SEL$5DA710D3

   5 - SEL$5DA710D3 / SKUWHU@SEL$2

   6 - SEL$5DA710D3 / S@SEL$1

Outline Data

-------------

  /*+

      BEGIN_OUTLINE_DATA

      IGNORE_OPTIM_EMBEDDED_HINTS

      OPTIMIZER_FEATURES_ENABLE('12.1.0.2')

      DB_VERSION('12.1.0.2')

      ALL_ROWS

      OUTLINE_LEAF(@"SEL$5DA710D3")

      UNNEST(@"SEL$2")

      OUTLINE_LEAF(@"UPD$1")

      OUTLINE(@"SEL$1")

      OUTLINE(@"SEL$2")

      FULL(@"UPD$1" "I"@"UPD$1")

      INDEX_FFS(@"SEL$5DA710D3" "S"@"SEL$1" ("SKU"."ITEM" "SKU"."PLANLEVEL"))

      INDEX(@"SEL$5DA710D3" "SKUWHU"@"SEL$2" ("SKUWHEREUSED"."SUBORDITEM"

              "SKUWHEREUSED"."PARENTITEM"))

      LEADING(@"SEL$5DA710D3" "S"@"SEL$1" "SKUWHU"@"SEL$2")

      USE_HASH(@"SEL$5DA710D3" "SKUWHU"@"SEL$2")

      SWAP_JOIN_INPUTS(@"SEL$5DA710D3" "SKUWHU"@"SEL$2")

      PARTIAL_JOIN(@"SEL$5DA710D3" "SKUWHU"@"SEL$2")

      END_OUTLINE_DATA

  */

Predicate Information (identified by operation id):

---------------------------------------------------

   2 - filter("I"."PLANLEVEL"=(-1))

   4 - access("S"."ITEM"="PARENTITEM")

   5 - access("SKUWHU"."SUBORDITEM"=:B1)

       filter("SKUWHU"."PARENTITEM"<>:B1)

   6 - filter("S"."ITEM"<>:B1)

Column Projection Information (identified by operation id):

-----------------------------------------------------------

   2 - (upd=5,8; cmp=2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27

       ,28; cpy=2,5,9) "I".ROWID[ROWID,10], "I"."ITEM"[VARCHAR2,200],

       "I"."DESCR"[VARCHAR2,200], "I"."UOM"[VARCHAR2,200], "I"."PLANLEVEL"[NUMBER,22],

       "I"."PERISHABLESW"[NUMBER,22], "I"."RESTRICTPLANMODE"[NUMBER,22],

       "FF_TRIGGER_CONTROL"[NUMBER,22], "I"."SUPSNGROUPNUM"[NUMBER,22],

       "I"."U_PROMOSW"[NUMBER,22], "I"."U_ABC"[VARCHAR2,200], "I"."U_FAMILY1"[VARCHAR2,200],

       "I"."U_FAMILY2"[VARCHAR2,200], "I"."U_BULKSW"[NUMBER,22],

       "I"."U_FAMILYTYPE"[VARCHAR2,12], "I"."U_ACTIVE"[NUMBER,22], "I"."U_MRIN"[VARCHAR2,120],

       "I"."U_PRODUCTTYPE"[VARCHAR2,12], "I"."U_ITEMTYPE"[VARCHAR2,12],

       "I"."U_YIELDSW"[NUMBER,22], "I"."U_UNITSQTY"[NUMBER,22], "I"."U_GROUPE1"[VARCHAR2,200],

       "I"."U_GROUPE2"[VARCHAR2,200], "I"."U_SHELFLIFEDUR"[NUMBER,22],

       "I"."U_ORDERTYPE"[VARCHAR2,200], "I"."U_MARKET"[VARCHAR2,200],

       "I"."U_ERP_ID"[VARCHAR2,200], "I"."U_DEL_SCH_TYP"[VARCHAR2,200]

   3 - (#keys=0) MAX("S"."PLANLEVEL"+1)[22]

   4 - (#keys=1) "S"."ITEM"[VARCHAR2,200], "S"."PLANLEVEL"[NUMBER,22]

   5 - "SKUWHU".ROWID[ROWID,10], "SKUWHU"."PARENTITEM"[VARCHAR2,200],

       "SKUWHU"."SUBORDITEM"[VARCHAR2,200]

   6 - "S"."ITEM"[VARCHAR2,200], "S"."PLANLEVEL"[NUMBER,22]

Note

-----

   - Warning: basic plan statistics not available. These are only collected when:

       * hint 'gather_plan_statistics' is used for the statement or

       * parameter 'statistics_level' is set to 'ALL', at session or system level

Below is plan when executed standalone.

Plan hash value: 3213331517                                                                                                                                                                                                                                                                               

-----------------------------------------------------------------------------------------------                                                                                                                                                                                                           

| Id  | Operation               | Name                | Rows  | Bytes | Cost (%CPU)| Time     |                                                                                                                                                                                                           

-----------------------------------------------------------------------------------------------                                                                                                                                                                                                           

|   0 | UPDATE STATEMENT        |                     |       |       |    50M(100)|          |                                                                                                                                                                                                           

|   1 |  UPDATE                 | ITEM                |       |       |            |          |                                                                                                                                                                                                           

|*  2 |   TABLE ACCESS FULL     | ITEM                | 15461 |  1857K|   112   (0)| 00:00:01 |                                                                                                                                                                                                           

|   3 |   SORT AGGREGATE        |                     |     1 |    27 |            |          |                                                                                                                                                                                                           

|*  4 |    HASH JOIN RIGHT SEMI |                     |  2604K|    67M|  3258   (1)| 00:00:01 |                                                                                                                                                                                                           

|*  5 |     INDEX RANGE SCAN    | SKUWHEREUSED_PARSUB |  6892 |   114K|    23   (0)| 00:00:01 |                                                                                                                                                                                                           

|*  6 |     INDEX FAST FULL SCAN| SKU_IDX3677         |  5983K|    57M|  3225   (1)| 00:00:01 |                                                                                                                                                                                                           

-----------------------------------------------------------------------------------------------                                                                                                                                                                                                           

Query Block Name / Object Alias (identified by operation id):                                                                                                                                                                                                                                             

-------------------------------------------------------------                                                                                                                                                                                                                                             

   1 - UPD$1                                                                                                                                                                                                                                                                                              

   2 - UPD$1        / I@UPD$1                                                                                                                                                                                                                                                                             

   3 - SEL$5DA710D3                                                                                                                                                                                                                                                                                       

   5 - SEL$5DA710D3 / SKUWHU@SEL$2                                                                                                                                                                                                                                                                        

   6 - SEL$5DA710D3 / S@SEL$1                                                                                                                                                                                                                                                                             

Outline Data                                                                                                                                                                                                                                                                                              

-------------                                                                                                                                                                                                                                                                                             

  /*+                                                                                                                                                                                                                                                                                                     

      BEGIN_OUTLINE_DATA                                                                                                                                                                                                                                                                                  

      IGNORE_OPTIM_EMBEDDED_HINTS                                                                                                                                                                                                                                                                         

      OPTIMIZER_FEATURES_ENABLE('12.1.0.2')                                                                                                                                                                                                                                                               

      DB_VERSION('12.1.0.2')                                                                                                                                                                                                                                                                              

      ALL_ROWS                                                                                                                                                                                                                                                                                            

      OUTLINE_LEAF(@"SEL$5DA710D3")                                                                                                                                                                                                                                                                       

      UNNEST(@"SEL$2")                                                                                                                                                                                                                                                                                    

      OUTLINE_LEAF(@"UPD$1")                                                                                                                                                                                                                                                                              

      OUTLINE(@"SEL$1")                                                                                                                                                                                                                                                                                   

      OUTLINE(@"SEL$2")                                                                                                                                                                                                                                                                                   

      FULL(@"UPD$1" "I"@"UPD$1")                                                                                                                                                                                                                                                                          

      INDEX_FFS(@"SEL$5DA710D3" "S"@"SEL$1" ("SKU"."ITEM" "SKU"."PLANLEVEL"))                                                                                                                                                                                                                             

      INDEX(@"SEL$5DA710D3" "SKUWHU"@"SEL$2" ("SKUWHEREUSED"."SUBORDITEM"                                                                                                                                                                                                                                 

              "SKUWHEREUSED"."PARENTITEM"))                                                                                                                                                                                                                                                               

      LEADING(@"SEL$5DA710D3" "S"@"SEL$1" "SKUWHU"@"SEL$2")                                                                                                                                                                                                                                               

      USE_HASH(@"SEL$5DA710D3" "SKUWHU"@"SEL$2")                                                                                                                                                                                                                                                          

      SWAP_JOIN_INPUTS(@"SEL$5DA710D3" "SKUWHU"@"SEL$2")                                                                                                                                                                                                                                                  

      PARTIAL_JOIN(@"SEL$5DA710D3" "SKUWHU"@"SEL$2")                                                                                                                                                                                                                                                      

      END_OUTLINE_DATA                                                                                                                                                                                                                                                                                    

  */                                                                                                                                                                                                                                                                                                      

Predicate Information (identified by operation id):                                                                                                                                                                                                                                                       

---------------------------------------------------                                                                                                                                                                                                                                                       

   2 - filter("I"."PLANLEVEL"=(-1))                                                                                                                                                                                                                                                                       

   4 - access("S"."ITEM"="PARENTITEM")                                                                                                                                                                                                                                                                    

   5 - access("SKUWHU"."SUBORDITEM"=:B1)                                                                                                                                                                                                                                                                  

       filter("SKUWHU"."PARENTITEM"<>:B1)                                                                                                                                                                                                                                                                 

   6 - filter("S"."ITEM"<>:B1)                                                                                                                                                                                                                                                                            

Column Projection Information (identified by operation id):                                                                                                                                                                                                                                               

-----------------------------------------------------------                                                                                                                                                                                                                                               

   2 - (upd=5; cmp=2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26;                                                                                                                                                                                                                      

       cpy=2,5,7) "I".ROWID[ROWID,10], "I"."ITEM"[VARCHAR2,200], "I"."DESCR"[VARCHAR2,200],                                                                                                                                                                                                               

       "I"."UOM"[VARCHAR2,200], "I"."PLANLEVEL"[NUMBER,22], "I"."PERISHABLESW"[NUMBER,22],                                                                                                                                                                                                                

       "I"."SUPSNGROUPNUM"[NUMBER,22], "I"."U_PROMOSW"[NUMBER,22], "I"."U_ABC"[VARCHAR2,200],                                                                                                                                                                                                             

       "I"."U_FAMILY1"[VARCHAR2,200], "I"."U_FAMILY2"[VARCHAR2,200],                                                                                                                                                                                                                                      

       "I"."U_BULKSW"[NUMBER,22], "I"."U_FAMILYTYPE"[VARCHAR2,12], "I"."U_ACTIVE"[NUMBER,22],                                                                                                                                                                                                             

       "I"."U_MRIN"[VARCHAR2,120], "I"."U_PRODUCTTYPE"[VARCHAR2,12],                                                                                                                                                                                                                                      

       "I"."U_ITEMTYPE"[VARCHAR2,12], "I"."U_YIELDSW"[NUMBER,22],                                                                                                                                                                                                                                         

       "I"."U_UNITSQTY"[NUMBER,22], "I"."U_GROUPE1"[VARCHAR2,200],                                                                                                                                                                                                                                        

       "I"."U_GROUPE2"[VARCHAR2,200], "I"."U_SHELFLIFEDUR"[NUMBER,22],                                                                                                                                                                                                                                    

       "I"."U_ORDERTYPE"[VARCHAR2,200], "I"."U_MARKET"[VARCHAR2,200],                                                                                                                                                                                                                                     

       "I"."U_ERP_ID"[VARCHAR2,200], "I"."U_DEL_SCH_TYP"[VARCHAR2,200]                                                                                                                                                                                                                                    

   3 - (#keys=0) MAX("S"."PLANLEVEL"+1)[22]                                                                                                                                                                                                                                                               

   4 - (#keys=1) "S"."ITEM"[VARCHAR2,200], "S"."PLANLEVEL"[NUMBER,22]                                                                                                                                                                                                                                     

   5 - "SKUWHU".ROWID[ROWID,10], "SKUWHU"."PARENTITEM"[VARCHAR2,200],                                                                                                                                                                                                                                     

       "SKUWHU"."SUBORDITEM"[VARCHAR2,200]                                                                                                                                                                                                                                                                

   6 - "S"."ITEM"[VARCHAR2,200], "S"."PLANLEVEL"[NUMBER,22]                   

Any quick inputs that you may suggest based on above information?

Below are the details from v$sql that might give more inputs.

0y3ah10c2p1fv is good running but 6zg6y5r6vbvw3 is very slow.

SQL_IDSHARABLE_MEMPERSISTENT_MEMRUNTIME_MEMEXECUTIONSEND_OF_FETCH_COUNTUSERS_EXECUTINGLOADSFIRST_LOAD_TIMEINVALIDATIONSPARSE_CALLSDISK_READSDIRECT_WRITESBUFFER_GETSCONCURRENCY_WAIT_TIMEUSER_IO_WAIT_TIMEPLSQL_EXEC_TIMEROWS_PROCESSEDCOMMAND_TYPEOPTIMIZER_MODEOPTIMIZER_COSTMODULECPU_TIMEELAPSED_TIMEPROGRAM_IDPROGRAM_LINE#EXACT_MATCHING_SIGNATUREFORCE_MATCHING_SIGNATURELAST_ACTIVE_TIMEIO_INTERCONNECT_BYTESPHYSICAL_READ_REQUESTSPHYSICAL_READ_BYTESPHYSICAL_WRITE_REQUESTSPHYSICAL_WRITE_BYTESLOCKED_TOTALPINNED_TOTAL
0y3ah10c2p1fv89,02132,92031,35222012017-11-12/08:15:401200113,7040952,904,09330,9226ALL_ROWS50,387,511TOAD 12.0.0.612,735,19610,134,4890011,238,678,480,914,200,000779,944,531,786,442,00011/12/2017 08:19:020000023
6zg6y5r6vbvw384,61131,51229,94411052017-11-08/04:45:314130030013,858,748208176,5981,946,34016,4246ALL_ROWS50,387,511JDBC Thin Client1,060,134,7943,617,840,506230,86969815,888,157,573,517,600,0008,265,604,637,537,560,00011/12/2017 09:35:359,830,400684,915,200684,915,200813
This post has been answered by AndrewSayer on Nov 14 2017
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 12 2017
Added on Nov 12 2017
29 comments
1,524 views