Cual forma es mejor.

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • DCErick
    Moderator
    • mar
    • 1090

    #1

    Cual forma es mejor.

    Tengo el siguiente select:

    Código:
      
    SELECT aufnr
             objid
             gstrs
             gsuzs
             gltrs
             gluzs
        INTO TABLE lt_ordenes_pm
        FROM caufv
        WHERE autyp = '30'
          AND bukrs = c_bukrs
          AND werks = c_werks
          AND ( gltrs > sy-datum OR ( gltrs = sy-datum AND gluzs >= sy-uzeit ) ).

    Y tengo este otro

    Código:
      
    SELECT aufnr
             objid
             gstrs
             gsuzs
             gltrs
             gluzs
        INTO TABLE lt_ordenes_pm
        FROM caufv
        WHERE autyp = '30'
          AND bukrs = c_bukrs
          AND werks = c_werks
          and gltrs >= sy-datum.
    
    
      DELETE lt_ordenes_pm WHERE gltrs = sy-datum AND gluzs < sy-uzeit.
    ¿Cual recomiendan que deje?

    El resultado que espero es traer todas las ordenes de mantenimiento en donde fin programado esté en el futuro (fecha y hora mayor igual a la fecha y hora actual.
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?
  • Fabian leonardo velasquez
    Member
    • sep
    • 62

    #2
    Ley de vida, simpre evita utilizar sentencias OR en las consultas a las bases de datos. Para mejorar la rutina podrias organizar la tabla interna por la fecha y la hora. de tal forma que al hacer el DELETE la rutina funcione mucho mas rapido. Igual lo mejor que podrias hacer es hacer TEST de rendimiento a tu programa.

    SELECT aufnr objid gstrs
    gsuzs gltrs gluzs
    INTO TABLE lt_ordenes_pm
    FROM caufv WHERE autyp = '30'
    AND bukrs = c_bukrs
    AND werks = c_werks
    AND gltrs >= sy-datum.

    ***Ordena la tabla interna

    DELETE lt_ordenes_pm WHERE gltrs EQ sy-datum
    AND gluzs LE sy-uzeit.
    Cordialmente
    Fabián Leonardo Velásquez P.
    Consultor SAP ABAP
    Bogota - Colombia

    Comentario

    • DCErick
      Moderator
      • mar
      • 1090

      #3
      Si, opté por hacer el delete a la tabla interna y tienes razon me olvidé del ordenamiento para hacer el delete mas rápido.

      gracias.
      -------------------
      ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

      Comentario

      • kibo
        Senior Member
        • may
        • 177

        #4
        Porque haciendo el Sort es mas rapido? el delete where va a recorrer todos los registro de la tabla interna, si los encuentra todos juntos o separadas es lo msmo o no?
        http://diariotitular.com/contacto/

        Comentario

        • DCErick
          Moderator
          • mar
          • 1090

          #5
          Originalmente publicado por kibo
          Porque haciendo el Sort es mas rapido? el delete where va a recorrer todos los registro de la tabla interna, si los encuentra todos juntos o separadas es lo msmo o no?

          Al ordenar la TI se indexa la misma, por lo cual posteriores busquedas,inserciones, o actualizaciones sobre la misma se realizan de manera mas veloz.
          -------------------
          ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

          Comentario

          Trabajando...