✒️ABAP La performance en ABAP
ABAP La performance en ABAP
VIDEO – PERFORMANCE EN ABAP
Se deben identificar cuáles son las buenas y las malas prácticas en la programación de ABAP. Esto nos ayudara a poder realizar los programas con más performance, que sean más fáciles de revisar, entender y de llevar un mantenimiento.
Cuando hablamos de performance nos estamos refiriendo al análisis del desempeño y rendimiento del programa.
La transacción SM30 para el análisis de la performance.
Una vez que ingresamos a la transacción presionamos el botón Tips & Tricks. Aquí vamos a ir analizando las diferentes prácticas de programación ABAP de modo de poder determinar cuales son buenas y debemos seguir utilizando y cuales no son recomendables y debemos dejar de utilizar.
Algunos ejemplos:
Abrimos la carpeta SQL Interface - Aggregates Select. Aquí vemos dos códigos ABAP que realizan lo mismo de dos formas diferentes, el objetivo es obtener el máximo valor. El de la izquierda utiliza la sentencia SELECT ENDSELECT totalmente desaconsejada desde el punto de vista de la performance, y el de la derecha utiliza la sentencia SELECT MAX.
Para evaluar la performance de ambos códigos presionamos el botón "Medir tiempo de ejecución". Y verificamos lo que mencionamos anteriormente, mientras que con el código de SELECT ENDSELECT el sistema tarda 2739 Microsegundos, utilizando el SELECT MAX el sistema solo tarda 177 Microsegundos. Por lo tanto, cuando tengamos que buscar el máximo valor en una tabla siempre utilicemos la opción de la derecha, es decir el SELECT MAX.
Ahora seleccionamos Búsqueda Lineal VS Búsqueda Binaria.
Vemos por un lado la búsqueda lineal que lee cada registro de la tabla interna en forma secuencial hasta encontrar el que cumple con la condición. Y por otro lado la búsqueda binaria que divide en 2 el espectro de búsqueda hasta encontrar el registro buscado. Veamos la performance de ambas. El resultado indica que la búsqueda binaria es 20 veces más eficiente que la búsqueda lineal.
Seleccionamos ahora acceso por clave a múltiples registros.
Allí se presentan dos alternativas a la izquierda vemos un loop y dentro del mismo una condición. A la derecha vemos un loop que tiene incorporado la condición, utilizando la cláusula WHERE. Veamos la performance de ambas. El resultado indica que es ampliamente recomendable incorporar dentro de los loops las condiciones de búsqueda, de modo de restringir lo más posible la cantidad de interacciones a realizar.
Ahora abrimos la carpeta operaciones de ARRAY y seleccionamos la opción APPENDEO de Tablas.
Vemos dos códigos. En el de la izquierda se loopea una tabla interna y se appendea otra. En el de la derecha se realizan ambos pasos en uno solo utilizando la sentencia APPEND LINES OF, veamos la performance de ambas.Comprobamos que es ampliamente recomendable la utilización de la sentencia APPEND LINES OF.
Ahora seleccionamos la opción Inserción de tablas.
En el código de la izquierda se recorre una tabla interna y se inserta cada registro de esta en otra tabla interna en cambio a la derecha se realizan ambos pasos en uno solo utilizando la sentencia INSERT LINES OF. Veamos la performance de ambas opciones. Comprobamos que es sumamente recomendable utilizar la sentencia INSERT LINES OF.
Ahora bien, algo importante de esta transacción es que nos permite grabar en archivo los códigos DT que ejecutamos.
También nos permite textear el código que nosotros mismos desarrollemos simplemente escribiendo dicho código en la pantalla y presionando el botón de medición de tiempo.
Por último la transacción nos permite evaluar cómo se distribuye el tiempo de procesamiento de un programa ABAP. Para ello basta con ingresar el nombre del programa, ejecutarlo y presionar el botón evaluar, para finalmente ver los resultados en pantalla.
Los tiempos de procesamiento de un programa ABAP se dividen entre ABAP, la base de datos y el sistema. De estos 3 ítems el que debemos tener en cuenta principalmente cuando evaluamos la performance es el tiempo de la base de datos, ya que este es el que más recursos consumen y por consiguiente es el que más tiempo requiere.
Cuanto más alto sea el porcentaje de procesamiento de la base de datos en comparación a los otros dos porcentajes, los tiempos de duración del programa se irán por las nubes.
La situación ideal es que el porcentaje de procesamiento ABAP sea lo más alto posible y el porcentaje de procesamiento de la base de datos sea lo más bajo posible. Para lograr esta situación deseada utilizaremos todas las técnicas de optimización de la performance que vimos en esta lección.
 
 
 
Sobre el autor
Publicación académica de Veronica Esmeralda Miramontes Varo, en su ámbito de estudios para la Carrera Consultor ABAP.
Veronica Esmeralda Miramontes Varo
Profesión: Maestra en Ciencias de la Computaci - Mexico - Legajo: DV64Z
✒️Autor de: 95 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Hola, soy veronica miramontes, mexicana. estoy aquí para aprender sobre el mundo de sap. espero obtener los mejores conocimientos y poder contribuir en algo a la comunidad cvosoft.
Certificación Académica de Veronica Miramontes