Performance en select

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • mystic_soul
    Member
    • sep
    • 76

    #1

    Performance en select

    Hola gente! como va? necesito la ayuda de ustedes urgente!!
    Tengo que darle performance a estos select.. se puede?

    Este es uno..

    SELECT b~werks c~vkorg c~vtweg a~pkunag a~pkunre a~spmon a~matnr
    c~fkart b~pstyv a~fkimg b~wavwr c~waerk b~kzwi3 b~kzwi1
    a~sptag b~vbeln b~posnr
    INTO TABLE it_s900
    FROM s900 AS a
    INNER JOIN vbrp AS b
    ON a~vbeln = b~vbeln
    AND a~posnr = b~posnr
    INNER JOIN vbrk AS c
    ON b~vbeln = c~vbeln
    FOR ALL ENTRIES IN it_ausp
    WHERE a~matnr EQ it_ausp-matnr
    AND a~pkunag IN s_pkunag
    AND a~pkunre IN s_pkunre
    AND a~fkart IN s_fkart
    AND a~waerk EQ p_waers
    AND a~sptag IN s_sptag
    AND b~pstyv IN s_pstyv
    AND c~vkorg IN s_vkorg
    AND c~vtweg IN s_vtweg
    AND c~bukrs EQ p_bukrs.

    SORT it_s900 BY werks vkorg vtweg pkunag pkunre
    spmon matnr fkart pstyv.

    *****************
    Este es el otro...

    SELECT a~matnr a~mfrnr INTO TABLE it_mara
    FROM ( mara AS a
    INNER JOIN mvke AS b
    ON a~matnr = b~matnr )
    WHERE a~matnr IN s_matnr " Material
    AND a~spart IN s_spart " Sector - Linea de Negocios
    AND a~extwg IN s_extwg " Autor
    AND a~mfrnr IN s_mfrnr " Editor
    AND a~profl IN s_profl " Tema
    AND b~mvgr3 IN s_mvgr3 " Sello Editorial
    AND b~vkorg IN s_vkorg " Organizacion de Ventas
    AND b~vtweg IN s_vtweg. " Canal de distribución

    SORT it_mara BY matnr.

    Desde ya se los voy a agradecer!!!
  • DavidXD_XD
    Moderator
    • ago
    • 1255

    #2
    Hola, la segunda consulta la veo bien .. ya que MARA y MVKE estan jalandose de llaves principales, lo que si podria ayudar es que si con los parametros que ingresas puedas sacar algun canal de distribucion o una organizacion de ventas, y con respecto a la primera consulta tengo un problema con la tabla S900, supongo que es por la version, resulta que en la S900 no tengo los campos vbeln ni posnr, pero el JOIN entre cabecera (VBRK) y detalles (VBRP) si va bien ....
    David Carballido Córdova

    Comentario

    • ballan
      Senior Member
      • oct
      • 671

      #3
      Buenos dias

      Aqui van unas recomendaciones generales para SELECT

      1.- Los inner join SIEMPRE deben ser por campos claves o campos indexados, es preferible meter algun tabla de mas pero que las uniones del join sean por campos clave o indexados

      2.- El orden de las tablas en el join debe ser primero la que mas registros restringe, terminando por la que menos restringe de todas, por ejemplo en tu primer select probablemente la que mas restringe es la S900, luego la VBRK y luego la VBRP

      3.- Los campos que se ponen en la clausula select (por ejemplo b~werks c~vkorg c~vtweg ... debes ponerlos en orden, suponiendo que haces el join primero por la S900 luego VBRK y luego VBRP tendrias que poner los campos que seleccionas por orden, todo esto que te digo tambien es aplicable para la clausula where

      4.- En el primer select podrias ayudarte de las tablas indices standar que tiene SAP (en tu caso seria la VRPMA indice de facturas por material) en caso de que en la S900 los campos vbeln y posnr no sean claves

      Comentario

      • ibecerra

        #4
        has una cosa mas..
        de vez validar que la tabla it_ausp este llena.. sino vas a tener problemas y va tratar de buscar toda la infromacion de las demas tablas.. mucho ojo..
        create una vista de visualizacion y me las tablas ... y cheque cuando se demora.. a mi me funciona bien.

        Comentario

        • mystic_soul
          Member
          • sep
          • 76

          #5
          gracias a todos por responder!
          la it_ausp va a tener algun valor, por lo que puse la condicion de que si esta tabla llegara a ser initial, no hace el primer select. Voy a probar lo de la vista de visualizaciòn..
          Me interesa lo de las tablas indice.. como se maneja en el programa?
          gracias!
          Editado por última vez por mystic_soul; 09/04/2008, 17:56:57.

          Comentario

          Trabajando...