Documentos de Académico
Documentos de Profesional
Documentos de Cultura
COM
En esta seccin pretender ser una ayuda de como optimizar el cdigo de los programa ABAP/4. Primero har una introduccin de como se han de disear los programas y seguidamente que instrucciones y como utilizarlas (esto parte es bsica para conseguir un programa optimizado). Para ver todos los "Tips & Tricks" tenemos que ir a la transaccin SE30. Lneas ha seguir para conseguir un buen programa Evitar cdigos muertos.. Eliminar cdigo innecesario y/o procesos redundantes. Es bueno documentar los programas o insertar comentarios en los programas. Importante tambin notificar los cambios que se realicen en el programa. Perder tiempo en analizar lo que se necesita, que procesos utilizaremos y que tipo de datos y estructura vamos a utilizar. Tener un plan adecuado para planear las pruebas que se van hacer al programa.
Siempre que se pueda hay que poner las condiciones en los clasula WHERE. Otro que penaliza el rendimiento es utilizar los operador OR, NOT e IN. Lo que mejora el rendimiento es el operador EQUAL o "=".
SELECT *
SELECT SINGLE *
La diferencia es que el SELECT SINGLE *. requiere una comunicacin la base de datos y el SELECT * requiere dos comunicaciones con la base de datos.
Cualquier funcin que pongamos en la clusula SELECT (SUM, MIN, ETC...) es ms rpido que la mismas funciones puesto dentro del SELECT.
SELECT INTO TABLE <INT-TAB> + LOOP AT T SELECT * FROM <TABLE> INTO TABLE <INT-TAB>. LOOP AT <INT-TAB>. ENDLOOP.
Es siempre ms rpido tratar los datos directamente en un SELECT que almacenar los datos en una tabla interna y despus tratar dichos datos.
Si se accede muy a menudo a diversas tablas es ms recomendable hacer una vista de dichas tablas que es ms rpido.
SELECT * FROM pers WHERE condicin. SELECT * FROM persproj WHERE person = pers-persnr. ... proceso ... ENDSELECT. ENDSELECT.
SELECT persnr FROM pers INTO TABLE ipers WHERE cond. . SELECT * FROM persproj FOR ALL ENTRIES IN ipers WHERE person = ipers-persnr ... proceso . ENDSELECT.
Con la opcin ALL ENTRIES se consigue que las entradas que nos interesen del primer SELECT se busque en el segundo, por lo tanto el segundo SELECT solo se ejecutara una vez.
Es ms rpido insertar directamente los contenidos de una tabla a otra que utilizar un loop para ellos.
Usando el operador CA
El utilizar los operadores CO, CA, CS conseguimos que la CPU trabaje menos.
Es ms rpido utilizar instrucciones del sistema que funciones del sistema, e aqu un ejemplo: STRING_CONCATENATE... ---> CONCATENATE STRING_SPLIT... ---> SPLIT STRING_LENGTH... ---> strlen() STRING_CENTER... ---> WRITE..TO. ..CENTERED STRING_MOVE_RIGHT ---> WRITE...TO...RIGHT-JUSTIFIED
Es ms rpido utilizar la sentencia CONCATENATE que programar un tratamiento de un string realizado por nosotros.
Instruccin SPLIT
Utilizar el SPLIT es ms rpido que programar un tratamiento de un string realizado por nosotros.
Es ms rpido borrar espacios en blanco con la derecha con SHIFT...LEFT DELETING LEADING... que utilizar la instruccin CONDENSE
Siempre es ms rpido utilizar funciones del sistema que programar para hacer un determinado tratamiento de un string.