This query is running slw...please help to improve performance

SELECT Listnontranstextid,
       Listnontransshort,
       Listnontransmedium,
       Listnontransextended
  FROM (WITH TEXT_T
                AS (SELECT /*+ index(TT pk_text_translation) */TT.TEXTID,
                           TT.short,
                           TT.medium,
                           TT.extended
                      FROM TEXT_TRANSLATION TT
                     WHERE TT.Active = 1
                           AND (   TT.Short <> 'Null'
                                OR TT.Medium <> 'Null'
                                OR TT.Extended <> 'Null')
                           AND TT.Languageid = @Langid
             FUNC AS (SELECT FN.ID
                        FROM Function_ Fn
                             INNER JOIN Function_Type Fnty
                                ON Fn.Functiontype = Fnty.Functiontype
                                   AND Fnty.Active = 1
                             INNER JOIN Operation_Step_Function Osf
                                ON (Osf.Functionid = Fn.Id)
                                   AND Osf.Active = 1
                             INNER JOIN Operation_Step Os
                                ON Os.Id = Osf.Operationstepid
                                   AND Os.Active = 1
                             INNER JOIN Operation Op
                                ON     Op.Id = Os.Operationid
                                   AND op.defaultoperationrevision = 1
                                   AND Op.Active = 1
                                   AND Op.Revisionstatusid NOT IN (2)
                       -- 2 means Operation Staus =Cancelled
                       WHERE FN.ACTIVE = 1
        SELECT TT.Textid AS Listnontranstextid,
               TT.Short AS Listnontransshort,
               TT.Medium AS Listnontransmedium,
               TT.Extended AS Listnontransextended
          FROM function_translation ft
               INNER JOIN TEXT_T TT
                  ON (TT.Textid = Ft.Textid)
               INNER JOIN FUNC F
                  ON (F.ID = Ft.Functionid)
         WHERE Ft.ACTIVE = 1
        UNION
        SELECT /*+ index(Forout IF_FUNCTION_OUTPUT_ROUTING_02) */ TT.Textid AS Listnontranstextid,
               TT.Short AS Listnontransshort,
               TT.Medium AS Listnontransmedium,
               TT.Extended AS Listnontransextended
          FROM Function_Output Fo
               INNER JOIN Function_Output_Routing Forout
                  ON Forout.Functionoutputid = Fo.Id
               INNER JOIN TEXT_T TT
                  ON TT.Textid = Forout.PromptTextid
               INNER JOIN Function_Output_Routing_Type Fort
                  ON Fort.Id = Forout.Outputroutingtypeid
               INNER JOIN Text_Translation Ttdt
                  ON     Ttdt.Textid = Fort.Textid
                     AND Ttdt.Languageid = @Langid
                     AND UPPER (Ttdt.Extended) = ('USER')
               INNER JOIN FUNC F
                  ON F.ID = FO.Functionid
        UNION
        SELECT TT.Textid AS Listnontranstextid,
               TT.Short AS Listnontransshort,
               TT.Medium AS Listnontransmedium,
               TT.Extended AS Listnontransextended
          FROM Function_Input Fi
               INNER JOIN TEXT_T TT
                  ON (TT.Textid = Fi.Prompttextid)
               INNER JOIN Function_Input_Source_Type Fist
                  ON Fist.Id = Fi.Inputsourcetypeid AND Fist.Active = 1
               INNER JOIN Text_Translation Ttdt
                  ON     Ttdt.Textid = Fist.Textid
                     AND Ttdt.Active = 1
                     AND Ttdt.Languageid = @Langid
                     AND UPPER (Ttdt.Extended) = ('USER')
               INNER JOIN FUNC F
                  ON F.ID = FI.Functionid
        UNION
        SELECT TT.Textid AS Listnontranstextid,
               TT.Short AS Listnontransshort,
               TT.Medium AS Listnontransmedium,
               TT.Extended AS Listnontransextended
          FROM Function_Input_value Fiv
               INNER JOIN function_input fi
                  ON fi.id = fiv.functioninputid
               INNER JOIN TEXT_T TT
                  ON (TT.Textid = Fiv.textid)
               INNER JOIN Function_Input_Source_Type Fist
                  ON Fist.Id = Fi.Inputsourcetypeid AND Fist.Active = 1
               INNER JOIN Text_Translation Ttdt
                  ON     Ttdt.Textid = Fist.Textid
                     AND Ttdt.Active = 1
                     AND Ttdt.Languageid = @Langid
                     AND UPPER (Ttdt.Extended) = ('USER')
               INNER JOIN FUNC F
                  ON F.ID = FI.Functionid
        UNION
        SELECT TT.Textid AS Listnontranstextid,
               TT.Short AS Listnontransshort,
               TT.Medium AS Listnontransmedium,
               TT.Extended AS Listnontransextended
          FROM    cob_t_ngmes_master_data ctnmt
               INNER JOIN
                  text_translation tt
               ON tt.textid = ctnmt.textid
         WHERE tt.languageid = @Langid 
        UNION  -- Swanand, PR 190540, Added this clause to get the reasoncodes
        SELECT TT.Textid AS Listnontranstextid,
               TT.Short AS Listnontransshort,
               TT.Medium AS Listnontransmedium,
               TT.Extended AS Listnontransextended
          FROM Reason_Code RC
               INNER JOIN Reason_Type RT
                  ON RT.ReasonType = RC.ReasonType
               INNER JOIN TEXT_TRANSLATION TT1
                  ON     TT1.textid = RT.textid
                     AND RT.ACTIVE = 1
                     AND TT1.ACTIVE = 1
                     AND (   TT1.Short <> 'Null'
                          OR TT1.Medium <> 'Null'
                          OR TT1.Extended <> 'Null')
               INNER JOIN TEXT_T TT
                  ON TT.textid = RC.textid AND RC.ACTIVE = 1
         WHERE TT1.Languageid = @Langid 
        UNION
        SELECT TT.Textid AS Listnontranstextid,
               TT.Short AS Listnontransshort,
               TT.Medium AS Listnontransmedium,
               TT.Extended AS Listnontransextended
          FROM NSPT_T_Event_Type ET
               INNER JOIN TEXT_TRANSLATION TT1 ON TT1.TextID =
     ET.TextID AND TT1.ACTIVE = 1
               INNER JOIN TEXT_T TT
                  ON TT.TextID = TT1.TextID
         WHERE  TT1.Languageid = @Langid  
                   ORDER BY Listnontranstextid ASC) WHERE Listnontranstextid > @I_TextIDEdited by: 964145 on Oct 26, 2012 4:53 PM

Duplicate post ? Query running slow....need performance tuning

Similar Messages

Maybe you are looking for