Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: ugly sql contest entry / Re: ORACLE-L Digest -- Volume 2001,

RE: ugly sql contest entry / Re: ORACLE-L Digest -- Volume 2001,

From: John Kanagaraj <john.kanagaraj_at_hds.com>
Date: Fri, 07 Dec 2001 17:54:39 -0800
Message-ID: <F001.003D80F9.20011207171521@fatcity.com>

Hi all,

Beat this one: (this is just *one* of the ugly ones in an Apps environment - A developer and I are still working on tuning it) - runs for about 8 hours with *lots* and *lots* of unnecessary LIO due to nested joins on multiple tables each of which are >1 million.... Cannot tune this using CBO since this is *not* supported in Oracle Apps 10.7/7.3.4 (or even 11.0/8.0.6) for that matter.

I win!

John Kanagaraj
Oracle Applications DBA
DBSoft Inc
(W): 408-970-7002

Wanna know the reason for the season? Click on 'http://www.needhim.org'

select ood.organization_code vendor_serial_number , vendor_lot_number , sph.date_shipped parent_serial_number , substr ( mil . segment1 , 2 , 7 ) order_number , msi . segment1 , msi . description , msn . attribute1 , msn . serial_number , sph . date_shipped , rac . customer_name , sha . attribute8 , cis . item_cost , gsb . name , ood . organization_code , gsb . currency_code , sota . name order_type , sha . attribute6 InSync , decode ( msn . serial_number , '' , sum ( moq . transaction_quantity ) , 1 ) trx_qty from snrrrep . cst_item_costs cis , snrrrep . xxg_in_product_structure_v xips , snrrrep . mtl_system_items msi , snrrrep . mtl_serial_numbers msn , snrrrep . mtl_item_locations mil , snrrrep . so_headers_all sha , snrrrep .

so_picking_headers_all sph , snrrrep . so_picking_lines_all spl , snrrrep .
so_order_types_all sota , snrrrep . ra_customers rac , snrrrep .
gl_sets_of_books gsb , snrrrep . org_organization_definitions ood , snrrrep
. mtl_secondary_inventories msec , snrrrep . mtl_onhand_quantities moq where ood . organization_id = msi . organization_id and gsb . set_of_books_id = ood . set_of_books_id and sha . customer_id = rac . customer_id (+) and msec.attribute3 = 'SNRR' and moq . locator_id = mil . inventory_location_id and moq . organization_id = mil . organization_id and
moq . inventory_item_id = msi . inventory_item_id and moq . organization_id
= msi . organization_id and msec . organization_id = moq . organization_id
and msec . secondary_inventory_name = moq . subinventory_code and sha .
order_type_id = sota . order_type_id (+) and moq . organization_id = msn . current_organization_id (+) and moq . inventory_item_id = msn . inventory_item_id (+) and moq . locator_id = msn . current_locator_id (+) and nvl ( msn . current_status , '9999' ) != 4 and substr ( mil . segment1 , 2 , 7 ) = to_char ( sha . order_number (+) ) and sha . header_id = sph . order_header_id (+) and sph . picking_header_id = spl . picking_header_id
(+) and ( ( moq . inventory_item_id = spl . inventory_item_id ) OR ( substr
( mil . segment1 , 2 , 7 ) is null ) OR ( substr ( mil . segment1 , 2 , 7 )
not in ( Select to_char ( order_number ) from snrrrep . so_headers_all ) ) ) and ( ( spl . picking_line_id = ( select max ( spla1 . picking_line_id ) from snrrrep . so_picking_headers_all spha1 , snrrrep . so_picking_lines_all spla1 where spha1 . order_header_id = sha . header_id and spha1 . picking_header_id = spla1 . picking_header_id and spla1 . inventory_item_id = msi . inventory_item_id ) ) OR ( substr ( mil . segment1 , 2 , 7 ) not in
( Select to_char ( order_number ) from snrrrep . so_headers_all ) ) OR (
substr ( mil . segment1 , 2 , 7 ) is null ) ) and msi . inventory_item_id = xips . inventory_item_id and msi . organization_id = xips . organization_id and cis . inventory_item_id = msi . inventory_item_id and cis . organization_id = msi . organization_id and cis . cost_type_id = 1 and ood . organization_code between nvl ( : p_org_from , ood . organization_code ) and nvl ( : p_org_to , ood . organization_code ) and moq . subinventory_code between nvl ( : p_subinv_from , moq . subinventory_code ) and nvl ( : p_subinv_to , moq . subinventory_code ) and xips . product_line between nvl
( : p_prod_from , xips . product_line ) and nvl ( : p_prod_to , xips .
product_line ) and msi . segment1 between nvl ( : p_item_from , msi . segment1 ) and nvl ( : p_item_to , msi . segment1 ) and nvl ( rac .
customer_name , '@@@' ) between nvl ( : p_customer_from , nvl ( rac .
customer_name , '@@@' ) ) and nvl ( : p_customer_to , nvl ( rac .
customer_name , '@@@' ) ) and nvl ( substr ( mil . segment1 , 2 , 7 ) ,
'000' ) between nvl ( : p_so_from , nvl ( substr ( mil . segment1 , 2 , 7 ) , '000' ) ) and nvl ( : p_so_to , nvl ( substr ( mil . segment1 , 2 , 7 ) , '000' ) ) and nvl ( sha . attribute5 , '@@@' ) between nvl ( : p_insync_from , nvl ( sha . attribute5 , '@@@' ) ) and nvl ( : p_insync_to , nvl ( sha . attribute5 , '@@@' ) ) and nvl ( sph . date_shipped , sysdate ) between nvl
( : p_ship_date_from , nvl ( sph . date_shipped , sysdate ) ) and nvl ( :
p_ship_date_to , nvl ( sph . date_shipped , sysdate ) ) and nvl ( msn . attribute1 , '@@@' ) between nvl ( : p_lo_from , nvl ( msn . attribute1 , '@@@' ) ) and nvl ( : p_lo_to , nvl ( msn . attribute1 , '@@@' ) ) group by substr ( mil . segment1 , 2 , 7 ) , msi . segment1 , msi . description , msn . attribute1 , msn . serial_number , sph . date_shipped , rac . customer_name , sha . attribute8 , cis . item_cost , gsb . name , sota . name , ood . organization_code , gsb . currency_code , sha . attribute6 , vendor_serial_number , vendor_lot_number , parent_serial_number , spl . picking_line_id ORDER BY 2 ASC,1 ASC,3 ASC,4 ASC,10 ASC,16 ASC,17 ASC
> -----Original Message-----
> From: Eric D. Pierce [mailto:PierceED_at_csus.edu]
> Sent: Friday, December 07, 2001 4:20 PM
> To: Multiple recipients of list ORACLE-L
> Subject: ugly sql contest entry / Re: ORACLE-L Digest -- Volume 2001,
> Number 333
> 
> 
>   1  UPDATE
>   2         TRIO_STUDENT_MASTERF00S01part5   T
>   3     SET
>   4       (
>   5         T.T08_STUDENT_RACE_ETHNICITY
>   6       )
>   7     = (
>   8  SELECT
>   9  decode(
>  10         decode( X.STU_ETH_CODE,
>  11                 'D', '0', /* Declined to State                */
>  12                 '8', '0', /* Other (Not Listed)           
>  (10/8/1999 ??)   */
>  13                 '9', '0', /* No Response                      */
>  14                 '1', '1', /* American Indian/ Native American */
>  15                 '2', '3', /* Black/ African American          */
>  16                 '3', '4', /* Chicano/ Mexican American        */
>  17                 '4', '4', /* Other Hispanic (Not Listed)      */
>  18                 'A', '4', /* Central American                 */
>  19                 'B', '4', /* South American                   */
>  20                 'P', '4', /* Puerto Rican                     */
>  21                 'Q', '4', /* Cuban                            */
>  22                 '5', '2', /* Other Asian                      */
>  23                 'C', '2', /* Chinese                          */
>  24                 'J', '2', /* Japanese                         */
>  25                 'K', '2', /* Korean                           */
>  26                 'L', '2', /* Laotian                          */
>  27                 'M', '2', /* Cambodian                        */
>  28                 'R', '2', /* Asian Indian                     */
>  29                 'S', '2', /* Other Southeast Asian            */
>  30                 'T', '2', /* Thai                             */
>  31                 'V', '2', /* Vietnamese                       */
>  32                 '6', '6', /* Other Pacific Islander       
>   (new 10/8/1999)  */
>  33                 'F', '6', /* Filipino                       ""  */
>  34                 'G', '6', /* Guamanian                      ""  */
>  35                 'H', '6', /* Hawaiian                       ""  */
>  36                 'N', '6', /* Samoan                         ""  */
>  37                 '7', '5', /* White/ Caucasian                 */
>  38                      decode( Z.STU_ETH_CODE,
>  39                              'D', '0', /* Declined to 
> State                */
>  40                              '8', '0', /* Other (Not 
> Listed)            (10/8/1999 ??)   */
>  41                              '9', '0', /* No Response     
>                  */
>  42                              '1', '1', /* American 
> Indian/ Native American */
>  43                              '2', '3', /* Black/ African 
> American          */
>  44                              '3', '4', /* Chicano/ 
> Mexican American        */
>  45                              '4', '4', /* Other Hispanic 
> (Not Listed)      */
>  46                              'A', '4', /* Central 
> American                 */
>  47                              'B', '4', /* South American  
>                  */
>  48                              'P', '4', /* Puerto Rican    
>                  */
>  49                              'Q', '4', /* Cuban           
>                  */
>  50                              '5', '2', /* Other Asian     
>                  */
>  51                              'C', '2', /* Chinese         
>                  */
>  52                              'J', '2', /* Japanese        
>                  */
>  53                              'K', '2', /* Korean          
>                  */
>  54                              'L', '2', /* Laotian         
>                  */
>  55                              'M', '2', /* Cambodian       
>                  */
>  56                              'R', '2', /* Asian Indian    
>                  */
>  57                              'S', '2', /* Other Southeast 
> Asian            */
>  58                              'T', '2', /* Thai            
>                  */
>  59                              'V', '2', /* Vietnamese      
>                  */
>  60                              '6', '6', /* Other Pacific 
> Islander         (new 10/8/1999)  */
>  61                              'F', '6', /* Filipino        
>                ""  */
>  62                              'G', '6', /* Guamanian       
>                ""  */
>  63                              'H', '6', /* Hawaiian        
>                ""  */
>  64                              'N', '6', /* Samoan          
>                ""  */
>  65                              '7', '5', /* White/ 
> Caucasian                 */
>  66                                   '*** no/bad data ***'
>  67                            )
>  68               ),
>  69  '1', '1',
>  70  '2', '2',
>  71  '3', '3',
>  72  '4', '4',
>  73  '5', '5',
>  74  '6', '6',
>  75  '7', '7',
>  76  '0',
>  77       decode( t.student_ssn,
>  78               '[several deleted]', '5',
> 
> ..
> 
> 101                            'x'
> 102             ),
> 103       '*'
> 104  )
> 105    FROM
> 106         TRIO_STUDENT_MASTERF00S01part5   T2,
> 107         SIS_CSUS_ALL_spring2001_eos1     X,
> 108         SIS_CSUS_ALL_fall_2000_eos1      Z
> 109   WHERE
> 110         T.STUDENT_SSN                    = T2.STUDENT_SSN
> 111     AND
> 112         T2.STUDENT_SSN                    = X.STU_ID (+)
> 113     AND
> 114         T2.STUDENT_SSN                    = Z.STU_ID (+)
> 115  )
> 116   WHERE
> 117         T.T08_STUDENT_RACE_ETHNICITY     = '-' 
> 118     AND
> 119         T.STUDENT_SSN                    IN
> 120       (
> 121         SELECT
> 122                T3.STUDENT_SSN
> 123           FROM
> 124                TRIO_STUDENT_MASTERF00S01part5   T3
> 125          WHERE
> 126                T3.T08_STUDENT_RACE_ETHNICITY     = '-' 
> 127*      )
> 
> 79 rows updated.
> 
> 
> Commit complete.
> 
> 
> 
>  COUNT(*) T                                                           
> --------- -                                                           
>         4 0                                                           
>         6 1                                                           
>         9 2                                                           
>        28 3                                                           
>        29 4                                                           
>       124 5                                                           
>         3 6                                                           
>         1 7                                                           
> ---------                                                             
>       204                                                             
> 
> 8 rows selected.
> 
>   1  select
>   2         count(*),
>   3         T.T08_STUDENT_RACE_ETHNICITY
>   4    from
>   5         TRIO_STUDENT_MASTERF00S01part5   T
>   6   group by
>   7*        T.T08_STUDENT_RACE_ETHNICITY
> 
> 
> --------------------------------------------------------------
> ----------
> 
> On 7 Dec 2001, at 15:27, Jared.Still_at_radisys.com wrote:
> 
> 
> > 
> > I think ugly SQL is appropriate.
> > 
> > We certainly see enough of it here anyway.  :)
> 
> ..
> 
> >> do we need to have a "ugliest SQL statement" contest?
> >> 
> >> OT list?
> >> 
> >> I have an entry ready
> 
> 
> -- 
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> -- 
> Author: Eric D. Pierce
>   INET: PierceED_at_csus.edu
> 
> Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
> San Diego, California        -- Public Internet access / Mailing Lists
> --------------------------------------------------------------------
> To REMOVE yourself from this mailing list, send an E-Mail message
> to: ListGuru_at_fatcity.com (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).
> 
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: John Kanagaraj
  INET: john.kanagaraj_at_hds.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (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).
Received on Fri Dec 07 2001 - 19:54:39 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US