Anuncio

Colapsar
No hay anuncio todavía.

Demora en Consulta

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Demora en Consulta

    Buen dia, amigos de forosap tengo una consulta que demora mas de tres minutos en ejecutarse, es la siguiente:

    SELECT cobk~budat coep~objnr coep~wkgbtr coep~mbgbtr coep~meinb
    coep~kstar coep~parob
    INTO CORRESPONDING FIELDS OF TABLE ti_cobk_coep3
    FROM coep
    INNER JOIN cobk ON coep~mandt = cobk~mandt AND coep~kokrs = cobk~kokrs AND coep~belnr = cobk~belnr
    WHERE cobk~budat IN so_budat AND
    coep~kokrs EQ 'GAND' AND
    coep~wrttp EQ '04' AND
    coep~lednr EQ '00' AND
    coep~objnr IN r_objnr AND
    coep~vrgng NE 'KOAO'.

    Espero me puedan ayudar a optimizarla, me han dicho que se puede utilizar funciones en vez de los select, o tambien con vistas, si tuvieran algun ejemplo me caeria perfecto.

    Muchas Gracias.

  • #2
    Originalmente publicado por brujop Ver Mensaje
    Buen dia, amigos de forosap tengo una consulta que demora mas de tres minutos en ejecutarse, es la siguiente:

    SELECT cobk~budat coep~objnr coep~wkgbtr coep~mbgbtr coep~meinb
    coep~kstar coep~parob
    INTO CORRESPONDING FIELDS OF TABLE ti_cobk_coep3
    FROM coep
    INNER JOIN cobk ON coep~mandt = cobk~mandt AND coep~kokrs = cobk~kokrs AND coep~belnr = cobk~belnr
    WHERE cobk~budat IN so_budat AND
    coep~kokrs EQ 'GAND' AND
    coep~wrttp EQ '04' AND
    coep~lednr EQ '00' AND
    coep~objnr IN r_objnr AND
    coep~vrgng NE 'KOAO'.

    Espero me puedan ayudar a optimizarla, me han dicho que se puede utilizar funciones en vez de los select, o tambien con vistas, si tuvieran algun ejemplo me caeria perfecto.

    Muchas Gracias.
    Hola compañero,

    bueno varias cosas veo en tu consulta, priemro hay cosas que debes pensar antes de plantear una consulta, buscar si existen bapis o badis o modulos de funcion que te traigan los datos que necesitas, para eso debemos saber para qué requieres la consulta, (generalmente cuando son tablas que tienen muchos registros SAP ya tiene modulos de funcion que traen la info por ti).

    segundo si no existiera otra forma de hacerlo sino una cosnulta directa a la base de datos debes dividir tu consulta y realizar FOR ALL ENTRIES no INNER JOIN, ahora cómo?

    lo haria así:

    1-Voy a la tabla cobk recuerda ir siempre por llave completa, en este caso debes tener KOKRS y BELNR o uno de los dos.

    2-con estos datos consultas la tabla COEP por llave completa KOKRS BELNR BUZEI (ten en cuenta que esta tabla tiene muchoooooossss registros) adicional a los campos de llave primara debes colocar los campos adicionales para filtrar. un consejo no "quemes" los valores ya que se hace mas lenta la consulta cuando lo haces así. crea constantes que tengan dichos valores y dentro de la consulta coloca las constantes.

    espero haberte ayudado un poco.

    Comentario


    • #3
      Muchas gracias guido por tu respuesta, buscare y aplicare lo que indicas.

      Comentario

      Trabajando...
      X