Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Optimizacion Codigo PDF
Optimizacion Codigo PDF
COM
En esta sección pretender ser una ayuda de como optimizar el código de los programa ABAP/4. Primero haré
una introducción de como se han de diseñar los programas y seguidamente que instrucciones y como
utilizarlas (esto parte es básica para conseguir un programa optimizado). Para ver todos los "Tips & Tricks"
tenemos que ir a la transacción SE30.
LENTO RÁPIDO
Siempre que se pueda hay que poner las condiciones en los claúsula WHERE. Otro que penaliza el rendimiento es utilizar los
operador OR, NOT e IN. Lo que mejora el rendimiento es el operador EQUAL o "=".
La diferencia es que el SELECT SINGLE *. requiere una comunicación la base de datos y el SELECT * requiere dos
comunicaciones con la base de datos.
Cualquier función que pongamos en la cláusula SELECT (SUM, MIN, ETC...) es más rápido que la mismas funciones puesto
dentro del SELECT.
Es siempre más rápido tratar los datos directamente en un SELECT que almacenar los datos en una tabla interna y después tratar
dichos datos.
Si se accede muy a menudo a diversas tablas es más recomendable hacer una vista de dichas tablas que es más rápido.
Con la opción 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 ejecutaría una vez.
SELECT sin tabla para soporte de buffer SELECT con tabla para soporte de buffer
LOOP AT <INT-TAB>
INSERT INTO <TABLE> VALUES <INT-TAB> Inserción directa. Ej: t1[ ] = t2[ ]
ENDLOOP
Es más rápido insertar directamente los contenidos de una tabla a otra que utilizar un loop para ellos.
Es más óptimo utilizar la instrucción UPDATE para modificar un campo o varios campos.
El utilizar los operadores CO, CA, CS conseguimos que la CPU trabaje menos.
Es más rápido 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 más rápido utilizar la sentencia CONCATENATE que programar un tratamiento de un string realizado por nosotros.
Utilizar el SPLIT es más rápido que programar un tratamiento de un string realizado por nosotros.
Es más rápido borrar espacios en blanco con la derecha con SHIFT...LEFT DELETING LEADING... que utilizar la instrucción
CONDENSE
Contar los caracteres con field length Contar los caracteres con STRLEN()
Siempre es más rápido utilizar funciones del sistema que programar para hacer un determinado tratamiento de un string.