Es un hecho que existe más de una forma de hacer las mismas cosas cuando estamos programando en ABAP, por lo que a menudo nos toca decidir cuál es la mejor alternativa. Posteriormente, cuando hacemos ajustes al performance del desarrollo, encontramos sentencias ABAP que generan costos elevados en tiempo de ejecución y nuevamente nos preguntamos cual alternativa seria un buen reemplazo más eficiente.
Dentro de la transacción SE30 existe una opción que nos puede ayudar a resolver estas dudas y es la que se encuentra en el botón Tips & Tricks.
En ella se encuentra una lista de técnicas y sentencias ABAP usadas comúnmente acompañadas de alternativas más eficientes, de modo que conocerlas y entenderlas nos puede ser bastante útil a la hora de analizar los resultados y poder hacer los ajustes necesarios.
Para hacer más fácil su consulta se encuentran clasificadas en grupos:
Grupo
|
Descripción
|
SQL Interface
|
Compara dos técnicas de acceso a la
base de datos explicando cuál de las dos es más eficiente.
|
Context
|
Obsoleto. Solo aplica para
algunas versiones
|
Internal Tables
|
Explica que técnica de acceso a
tablas internas genera mejor desempeño (performance) comparando
varias alternativas como binary search, key read, acceso
individual vs acceso masivo, etc.
|
Typing
|
Explica por qué resulta más eficiente
especificar el tipo de datos en los parámetros y field-symbols.
|
IF, Case
|
Explica por qué es más eficiente
utilizar la sentencia CASE que varias sentencias IF, While en lugar de
DO, etc
|
Field Conversion
|
Explica por qué se debe usar el tipo
de datos adecuado y evitar hacer conversiones de tipo de datos
innecesarias.
|
Character / String Manipulation
|
Explica por qué usar el tipo STRING
en lugar de carácter resulta mejor en términos de performance
|
ABAP Objects
|
Compara alternativas en las técnicas
Perform, call Function Module, Call Method y explica por qué es
más eficiente usar una u otra.
|
Es posible que ya conozcas varias de estas técnicas, pero considero que vale la pena darles una revisada especialmente cuando necesitemos mejorar el rendimiento de nuestros desarrollos. Recordemos que aunque tengamos años de experiencia, nunca es malo refrescar información.