🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP La performance en ABAP

ABAP La performance en ABAP

ABAP La performance en ABAP

LA PERFOMANCE EN ABAP

En ABAP existe lo que en programación se denomina buenas y malas prácticas, ya sea porque afectan a la perfomance de los programas o porque afectan a otros factores determinantes como son la reutilización del código.

En esta ocasión nos vamos a concentrar en la perfomance de los programas.

Cuando hablamos de perfomance nos estamos refiriendo al análisis del desempeño y rendimiento del programa. Para ello vamos a trabajar con una transacción estándar de SAP que es sumamente útil para el análisis del perfomance. Transacción SE30.

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.

Empecemos abriendo la carpeta SQL interface, seleccionamos select aggregates (agregados del selec), 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 perfomance, 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 2.739 microsegundos, utilizando el SELEC 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, SELECT MAX.

Ahora clickeamos selec with selec list (selección con lista de selección) , aquí vemos dos códigos ABAP, si bien ambos utilizan la sentencia SELEC -ENDSELECT la cual está totalmente desaconsejada, el de la izquierda realiza un SELECT * mientras que el de la derecha especifica los campos a seleccionar. Para evaluar su perfomance presionamos el botón medir tiempo de ejecución. Verificamos que especificar los campos a seleccionar es mucho más eficiente que realizar un SELECT * donde seleccionamos todos los campos que en muchos casos puede ser innecesario.

Ahora abrimos la carpeta Operaciones de Array (tablas internas) aquí seleccionamos Select into table vemos dos códigos ABAP en el de la izquierda se realiza un SELECT - ENDSELECT totalmente desaconsejado y por cada vuelta un APPEND a una tabla interna, en el de la derecha ejecutamos la sentencia SELECT INTO TABLE la cual insertará directamente los registros seleccionados en la tabla interna. Veamos la performance de ambas: comprobamos que la utilización del SELECT INTO TABLE es altamente conveniente ya que es prácticamente 7 veces más eficiente desde el punto de vista de la perfomance.

Ahora clickeamos Array insert VS Single-row insert, vemos dos códigos. A la izquierda recorremos la tabla interna y por cada registro realizamos un insert, a la derecha evitamos recorrer la tabla interna ejecutando la sentencia INSERT FROM TABLE. Veamos la perfomance de ambas opciones. Si bien el resultado arrojado para ambas es 0 microsegundos, la opción de la derecha es ampliamente recomendable.

Ahora seleccionamos Array select vs Select-EnSelect, aquí vemos dos opciones: a la izquierda realizamos un SELECT INTO TABLE y luego recorremos la tabla interna con un LOOP, a la derecha ejecutamos el famoso SELECT ENDSELECT tan desaconsejado por su mala perfomance. Veamos la perfomance de ambas sentencias: comprobamos que no es conveniente la utilización del SELECT ENDSELECT, siempre es preferible el SELECT INTO TABLE.

Ahora abrimos la carpeta Tablas Internas , allí clickeamos using explicit work areas y vemos dos códigos: en el de la izquierda se realiza una asignación y luego un APPEND y en el de la derecha hacemos los dos pasos en uno solo. Veamos la perfomance de ambos: si bien el resultado es el mismo, es ampliamente recomendable evitar realizar asignaciones innecesarias.

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 dos 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, aquí 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 LOOP las condiciones de búsquedas, de modo de restringir lo más posible la cantidad de interacciones a realizar,

Ahora abrimos la carpeta Operaciones 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 ampliamente recomendable utilizar la sentencia INSERT LINES OF.

Ahora seleccionamos borrado de duplicados , aquí se presentan dos códigos, la principal diferencia entre ambos es que en el de la izquierda se emplea una combinación de sentencias para borrar los duplicados de una tabla interna, en cambio en el de la derecha solamente se utiliza la sentencia DELETE ADJACENT DUPLICATES FROM. Comprrobamos que es ampliamente recomendable utilizar la sentencia DELETE ADJACENT DUPLICATES para borrar registros duplicados de una tabla interna.

Seleccionamos ahora copiar tablas internas, aquí se presentan dos opciones: en el de la izquierda se loopea una tabla interna y se appendea cada registro en otra tabla interna, en cambio en el de la derecha se realiza una asignación directa del contenido de la tabla 1 a la tabla 2. Para ello, ambas tablas deben ser iguales. Sin dudas, la asignación directa del contenido de una tabla interna a otra del mismo tipo es ampliamente recomendable.

Seleccionemos ahora comparación de tablas internas, en el código de la izquierda se recorren las tablas internas para establecer si son iguales o no, en cambio a la derecha se emplea la comparación directa. Comprobamos que la comparación directa es totalmente superior en cuestiones de performance.

Seleccionamos ahora ordenamiento de tablas internas, aquí vamos a comparar la diferencia que existe entre ordenar una tabla interna sin especificar el campo y especificando el campo de ordenamiento. Verificamos que es sumamente recomendable especificar el campo de ordenamiento de una tabla interna al ejecutar la sentencia SORT.

Ahora abrimos la carpeta tipos y seleccionamos Parámetros con tipo vs parámetros sin tipo, en la declaración de la subrutina UP1 de la izquierda no se especifican los tipos de los parámetros , en cambio, en los parámetros de la subrutina UP2 de la derecha si se especifican los tipos de los parámetros. Comprobamos que siempre es conveniente especificar los tipos en las declaraciones de subrutinas.

Ahora abrimos la carpeta IF CASE y seleccionamos IF vs Case, vamos a verificar si es más performance especificar condiciones con IF o mediante CASE, Comprobamos que es levemente más performance utilizar la sentencia Case para condiciones con muchas opciones.

Abrimos la carpeta Conversión de campos, y seleccionamos tipos mixtos, aquí se presentan dos códigos, a la izquierda vamos a multiplicar dos variables de distintos tipos cuyo resultado almacenaremos en una variable de un tipo distinto a las otras dos, en cambio a la derecha utilizamos tres variables del mismo tipo. Resulta mas conveniente trabajar con variables del mismo tipo al realizar operaciones aritméticas.

Ahora bien, algo importante de esta transacción es que nos permite grabar en archivos los códigos de test que ejecutamos, también nos permite testear 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 como 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 el resultado en pantalla.

Los tiempos de procesamiento de un programa ABAP se dividen entre ABAP, la base de datos y el sistema, de estos tres items 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 consume y por consiguiente es el que más tiempo requiere.


 

 

 


Sobre el autor

Publicación académica de Ducelvis Lolimar Arcia Cova, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Expert


Ducelvis Lolimar Arcia Cova

Profesión: Tsu Relaciones Industriales (rrii) - Argentina - Legajo: WX74T

✒️Autor de: 125 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Presentación:

Mi principal objetivo al comenzar esta gran experiencia educativa en programación abap es adquirir los conocimientos y competencias necesarias para incorporarme en el ámbito laboral en esta área.

Certificación Académica de Ducelvis Arcia

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "La performance en ABAP" de la mano de nuestros alumnos.

SAP Master

PERFORMANCE EN PROGRAMACION ABAP El performance de un programa es el analisis del desempeño y rendimiento de un programa, para esto se va a trabajar con una herramiento de SAP estandar que es sumamente util para el analisis de la performance, esta es la transacción SE30. El objetivo del performance es poder realizar programas de alta calidad, que funcionen perfectamente en el ambiente productivo, que es donde las tablas de las bases de datos contienen millones de registros y cada micro segundo cuenta. Los tiempos de procesamiento de ABAP se dividen en tres: La base de datos, Abap y el sistema, de estos 3 item debemos tomar en cuenta en cuanto a la performance es la base de datos ya que este es el que mas recursos consumen y...

Acceder a esta publicación

Creado y Compartido por: Jesus Enrique Ramos Bello / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

En ABAP existen las buenas y malas practicas porque afectan a la performance de los programas o a la reutilización del código. Performance de los programas Performance: Analisís del desempeño y el rendimiento del programa. - Usaremos la transax. SE30 - presionamos el boton Tips & Tricks - Analizaremos las diferentes prácticas de la programación ABAP - En 2 paneles se compararán fragmentos de código. Los tiempos de procesamiento de un programa ABAP se dividen en 3: ABAP, BD y Sistema. De estos tres items el que debemos tener en cuenta principalmente cuando evaluamos la performance es el tiempo de la BD ya que este es el que mas recursos consumen y por consiguiente es el que mas...

Acceder a esta publicación

Creado y Compartido por: Jesus German Cavazos Elizondo

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Performance ABAP. Performance: Nos referimos al análisis del desempeño de un programa o transacción. Buenas o malas practicas en el performance o utilización de otro código. Transacción estándar: SE30 para el performance dar clic en el botón Tips & Tricks. Verificar todas las carpetas para verificar el performan, seleccionamos un código y ahí damos clic en el botón Medir tiempo ejec. Permite grabar en archivo los códigos que se ejecutan. Permite testear el código que se escribe. Evaluar como se distribuye en tiempo de procesamiento de un programa ABAP. Ingresar el nombre del programa, ejecutar y presionar el botón evaluar.

Acceder a esta publicación

Creado y Compartido por: Rafael Razo

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Performance en abap presionamos el boton trips & tricks y podremos ver carpetas que contienen codigos donde prodremos comparar el performance de ambos codigos. a si podremos saber cuales son las mejores practicas de codigicacion.

Acceder a esta publicación

Creado y Compartido por: Luis Eugenio Leyva Orozco

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Performance en ABAP En ABAP existen buenas y malas practicas sea por que afectan a los Performance de los programas o por que afectan a otros factores determinantes como es la utilización de código. Performance de los programas - se trata del análisis del desempeño y rendimiento del programa. Utilizamos la transacción SE30 para ver las Performance. Una vez dentro pulsamos el botón Tips & Tricks. Abrimos la carpeta SQL Interface y seleccionamos Select aggregates. Vamos a ver dos códigos distintos que dan el mismo resultado. Para evaluar la performance pulsamos el botón Medir tiempo ejecución. Hacemos lo mismo con Select with select list. Aquí podemos ver que especificando...

Acceder a esta publicación

Creado y Compartido por: Ana Schiau

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

VIDEO - PERFORMANCE EN ABAP Performance en ABAP El objetivo de esta lección es tener bien claro que prácticas son desaconsejadas y cuales si son recomendadas, de modo de poder apuntar a realizar programas de alta calidad, que funcionen perfectamente en el ambiente productivo, donde las tablas de la BD contienen millones de registros y cada micro segundo cuenta. Los tiempos de procesamiento de un programa ABAP se divide entre ABAP, la BD y el Sistema, de estos tres items el q debemos tener en cuenta principalmente cdo evaluamos la performance es el tiempo de la BD ya q esté es el q más recurso consume y por consiguiente es el q más tiempo requiere, cdo más alto sea el porcentaje del procesamiento de...

Acceder a esta publicación

Creado y Compartido por: Mayra Maria Pino Rodriguez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Cuando Hablamos de performance nos referimos al desempeño del programa, para poder analizar la performance podemos utilizar la transacción SE30 por el botón TIPS & TRICKS donde nos orienta con cuales de las sentencia que son aconsejables utilzar. Los tiempos de procesamiento de un programa ABAP se dividen en tres: ABAP ,la base de datos y el sistema, de los tres el que mas consume recursos es el de la base de datos y es con el que tenemos tener mas cuidado.

Acceder a esta publicación

Creado y Compartido por: William Alejandro Lemus

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Performance en ABAP Para verificar el performance ingresamos a la TX SE30, Aqui presionamos Tips & Tricks en la cual nos recomiendan buenas practicas, nos daran los puntos en el cual podemos programar en ABAP de diferentes manera, y ver su performance, y podemos ver el el tipo de ejecucion. Tiempos de procesamiento se dividen en 3: ABAP: Debe ser lo más ALTO posible BBDD: Debe ser lo más BAJO posible. A tener en cuenta para la performance ya que es lo que más tpo requiere. SISTEMA:

Acceder a esta publicación

Creado y Compartido por: Ruben Dario Martucci / Disponibilidad Laboral: FullTime

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

lección 8/9: Video - Performance en ABAP Accedemos a la transacción SE30 clicamos en el botón tips & tricks acáveremos carpetas que contienen archivos con código de consultas en SQL que podremos comparar la performance de ambos códigos (el resultado nos indicara en microsegundos), por sentido comun sabremos que el que tarda menos tiempo en ejecutarse sera el de mayor performance, de tal manera podremos saber cuál es la mejor práctica para desarrollar.

Acceder a esta publicación

Creado y Compartido por: Ruben Santiago Cuenca Balanza / Disponibilidad Laboral: FullTime + Carta Presentación

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


PERFORMANCE EN ABAP – LECCION 7-8 PERFORMANCE, cuando hablamos de performance nos referimos al análisis de desempeño de un programa o transacción, para medir la performance de un programa o transacción realizaremos pruebas de rendimiento NOTA, los tiempos de procesamientos de un programa ABAP, se dividen entre ABAP, la base de dato y el sistema, de estos tres ítems el que debemos tener en cuenta principalmente cuando evaluamos la performance, es el tiempo de la base de dato ya que es el que más recursos consume y por consiguiente es el que más tiempo requiere, cuanto más alto sea el porcentaje del procesamiento de la base de dato en comparación a los otros dos porcentajes,...

Acceder a esta publicación

Creado y Compartido por: Cristian Darwin Arteaga Diaz / Disponibilidad Laboral: FullTime + Carta Presentación

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!