✒️ABAP / La performance en ABAP Por Linda Zambrano León

Selector Alummnos / Empresas

ABAP La performance en ABAP

ABAP La performance en ABAP
Performance en ABAP

El performances refiere a el análisis del desempeño y el rendimiento del programa ABAP. En este análisis existe los siguiente 3 aspectos fundamentales:

* El tiempo de procesamiento de la lógica del programa.
* El tiempo de procesamiento de los accesos a las tablas de las bases de datos.
* El tiempo del procesamiento del sistema ABAP.

De estos 3 tiempos, el que más recursos consume es el tiempo de procesamiento de los accesos a las tablas de bases de datos, luego esta el procesamiento de la lógica y finalmente el procesamiento del sistema ABAP.

Para este análisis contamos con la transacción SE30 que evaluar cómo se distribuye el tiempo de ejecución y procesamiento del programa.

Para ello al ingresar se indica el nombre del programa y se pulsa el botón Evaluar. Lo que nos mostrará como se distribuye el porcentaje de los tiempos de procesamiento de lógica ABAP, la base de datos y el sistema.

La situación ideal sería entonces que el porcentaje más alto de procesamiento sea la lógica ABAP y el más bajo sea el de la tabla base de datos. Para ello se debe cuidar de las buenas practicas de programación.

Buenas y malas prácticas en el acceso a bases de datos.
A continuación veremos las prácticas mas relevantes y que producen un mayor impacto en el tiempo de procesamiento de la base de datos.

* Evitar el SELECT*: Esta sentencia SELECT* recupera TODOS los datos de la tabla llamada o indicada, en lugar de llamarlo todos, se sugiere especificar qué datos se requieren recuperar, así:
FORM seleccionar_datos.
REFRESH ti_usuarios.
SELECT dni nombre_ape estado_usu
FROM ztabla_usuarios
INTO TABLE ti_usuarios.

* Evitar el SELECT ENDSELECT: La sentencia SELECT ENDSELECT genera un bucle para procesar registros recuperados de otra tabla base de datos, sin embargo en mas performante utilizar el SELECT INTO TABLE.

* Evitar el SELECT sin WHERE: Al usar la sentencia SELECT sin la condición, se procesan o llaman TODOS los registros de la tabla base de datos, sin embargo lo ideal es usar el WHERE con la mayor cantidad de especificaciones posibles, para reducir así el procesamiento al necesario. Se sugiere también evitar condiciones negativas o con uso de NE.

* Evitar el SELECT dentro de un LOOP: El ejecutar uno o varios SELECT dentro de un LOOP ENDLOOP, va a generar que se seleccione cada registro mientras se recorre la tabla. Es posible usar un SELECT SINGLE con condiciones especificas que seleccionará el primer caso que aplique. O es posible recuperar en tablas internas todos los registros necesario y luego dentro del LOOP acceder a ellos desde la sentencia READ TABLE, recuperando todos los registros de dicha tabla base de datos se ejecuta adicionalmente FOR ALL ENTRIES dentro del SELECT para recuperar los registros de la base de datos a memoria.

* Evitar utilizar las sentencias INSERT, UPDATE, MODIFY y DELETE en un LOOP: Realizar esto dentro del LOOP ya que generará una tabla más larga y requerirá más recurso, en cambio se recomienda realizar el uso de estas sentencia al final o fuera del LOOP.

* SELECT más SELECT vs JOIN: Cuando se requiere tomar datos de varias tablas bases de datos no se recomienda usar SELECT tras SELECT, sino la sentencia JOIN la veces necesarias. Así:

START-OF-SELECTION.
REFRESH ti_tabla
SELECT tl~carrid tl~connid t2~dldate t2~planetype tl~countryfl
INTO CORRESPONDING FIELDS OF TABLE ti_tabla
FROM spfli AS tl INNER JOIN sflight AS t2
ON tl~carrid = t2~carrid
AND tl~connid = t2~connid.

Buenas y malas prácticas en lógica de procesamiento ABAP.
A continuación veremos las prácticas mas relevantes y que producen un mayor impacto en el tiempo de procesamiento de la lógica ABAP.

* READ TABLE BINARY SEARCH: Cuando se busca un registro en una tabla mediante la sentencia READ TABLE la búsqueda se realiza de manera secuencial, sin embargo la búsqueda binaria genera una partición de la tabla, buscando en mitades, lo que ofrece un mayor rendimiento en dicha tarea. Para implementarla la el campo de búsqueda en la tabla interna debe estar ordenada ascendente o descendentemente y agregar la clausula BINARY SERCH al final del READ TABLE, así:
SORT ti_proveedores ASCENDING BY nombre.
READ TABLE ti_proveedores INTO wa_proveedores WITH KEY nombre = 'Ariel' BINARY SEARCH.

* Evitar el LOOP ENDLOOP dentro de otro LOOP ENDLOOP: Realizar LOOPS dentro de otro LOOP genera una búsqueda exponencial de registros, por lo que se sugiere usar el condicional WHERE y la búsqueda binaria, para optimizar el procesamiento, así.
SORT ti_usuarios ASCENDING BY nombre.
LOOP AT ti_proveedores INTO wa_proveedores WHERE dni > '50000000'.
READ TABLE ti_usuarios INTO wa_usuario WITH KEY dni = wa_proveedores-dni BINARY SEARCH.

* LOOP CHECK vs LOOP WHERE: Al buscar dentro de un LOOP si bien se pueden utilizar como filtro las sentencias CHECK e IF-ENDIF, estas no se recomiendan ya que se leerán todos los registros, sin embargo lo optimo es implementar el WHERE con las condiciones especificas.

* Olvidar WHEN OTHERS en la sentencia CASE: En el condicional CASE-ENDCASE es muy importante especificar el caso en el que no se encuentre ninguno de los casos indicados, ya que de lo contrario el sistema arrojara un error o llevar a situaciones inesperadas. Esto implementando la alternativa WHEN OTHERS.

* APPEND de una tabla interna en otra tabla interna: Cuando se hace necesario agregar registros de una tabla interna a otra ti del mismo tipo, la peor opción es tomar el contenido de una tabla en un LOOP llevando registro a registro la información a la otra tabla. En dicho caso es más optimo usar la sentencia APPEND LINES OF en una sola línea para llevar el contenido de una tabla a otra; así:
APPEND LINES OF itab1 TO itab2.

* INSERT de una tabla interna en otra tabla interna: Cuando se hace necesario insertar registros de una tabla interna a otra ti del mismo tipo, la peor opción es insertar registro por registro de unta tabla a otra, es sin embargo optimo insertar el contenido en una posición determinada de una tabla a otra a través de la sentencia INSERT LINES OF, así:
INSERT LINES OF itab1 INTO itab2 INDEX i.

* Borrado de registro duplicados de una tabla interna: Cuando se requiere corroborar y eliminar si una tabla tiene registros duplicados. Para ello principalmente será necesario tener los campos a examinar ordenados. Dónde la peor opción sería verificar registro por registro si el primer registro se parece al siguiente y si así es borrarlo, sin embargo es posible usar la sentencia DELETE ADJACENT DIPLICATES junto con COMPARING para comparar los campos que sean especificados en dicho proceso, así:
DELETE ADJACENT DUPLICATES FROM itab COMPARING K.

* Copiar tablas interna: Cuando se hace necesario copiar registros de una tabla interna a otra ti del mismo tipo, la peor opción es borrar el contenido de una tabla para pasar la información de la otra allí, es sin embargo optimo asignar ti_1 [] = ti_2 [], pisando el contenido de una tabla a otra.

* Comparación de tablas internas: Cuando se hace necesario comparar 2 tablas internas para determinar si su contenido es el mismo, la peor forma es realizarlo de manera manual, sin embargo existe una forma optima de llevar a cabo esta tarea mediante in IF-ENDIF dentro del cual se asignará las tablas y en una sola línea se determinará si existe una duplicidad, así:
IF i_tab1 [] = i_tab2 [].
" ...
ENDIF.

Existen 2 herramientas que nos ayudan para evitar la utilización de malas practicas, estas son el inspector de código SCI y el chequeo extendido SLIN. Idealmente tras realizar un código o al editar un programa existente se deben ejecutar ambas para asegurar la optimización de los procesos.


 

Escanear / Compartir

 

 

Agradecimiento:

Ha agradecido este aporte: Jaime Gomez Arango


Sobre el autor

Publicación académica de Linda Carolina Zambrano León, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.

SAP Senior

Linda Carolina Zambrano León

Profesión: Agente - Peru - Legajo: XR55P

✒️Autor de: 63 Publicaciones Académicas

🎓Egresado del módulo:

Certificación Académica de Linda Zambrano

✒️+Comunidad Académica CVOSOFT

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

SAP Master


La Performance en ABAP Se analizan las prácticas de programación que afectan el desempeño y rendimiento en ABAP, priorizando la performance. Los tres aspectos fundamentales son: tiempo de procesamiento de la lógica ABAP, de los accesos a la base de datos y del sistema SAP. El acceso a la base de datos suele ser el principal factor de impacto en recursos y tiempo, aunque con SAP HANA este impacto ha disminuido. Se recomienda utilizar la transacción SE30 para medir los tiempos de procesamiento y detectar cuellos de botella. Lo ideal es que el mayor porcentaje de tiempo se invierta en la lógica ABAP y el menor en los accesos a base de datos. Buenas y malas prácticas de acceso...

Acceder a esta publicación

Creado y Compartido por: Juan Ignacio Romero

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

SAP Senior

¿Qué afecta la performance? 1. Accesos a base de datos (el más crítico). 2. Lógica ABAP (bucles, condiciones, tablas internas). 3. Tiempo del sistema (carga del servidor). Herramienta de análisis: · Transacción SE30 (Análisis de tiempo de ejecución). Buenas Prácticas - Base de Datos: Mala Práctica Buena Práctica Razón SELECT * SELECT campo1 campo2 Evita traer datos innecesarios SELECT ... ENDSELECT SELECT ... INTO TABLE 8x más rápido SELECT sin WHERE Siempre usar WHERE Evita full table scan SELECT dentro de LOOP SELECT FOR ALL ENTRIES Reduce accesos a DB INSERT/UPDATE en LOOP INSERT/UPDATE ... FROM TABLE 1 acceso vs N accesos...

Acceder a esta publicación

Creado y Compartido por: Mara Fadua Romero Hernandez

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

SAP Master

Introducción: La performance en ABAP se centra en tres pilares: tiempo de acceso a BD, lógica ABAP y carga del sistema. ¡Domina las buenas prácticas para evitar cuellos de botella en programas críticos! Diagnóstico: Transacción SE30 Herramienta clave: Analiza distribución de tiempos: Base de datos (Mayor impacto) Lógica ABAP Sistema SAP Objetivo ideal: Minimizar tiempo de BD (< 30%) Maximizar eficiencia en lógica ABAP Malas Prácticas en Acceso a BD SELECT * Problema: Recupera campos innecesarios. Solución:...

Acceder a esta publicación

Creado y Compartido por: Oscar Aravena Muller / Disponibilidad Laboral: FullTime

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

SAP Expert



La performance en ABAP dentro del ecosistema SAP es un tema fundamental para garantizar la eficiencia, escalabilidad y estabilidad de los sistemas empresariales. ABAP (Advanced Business Application Programming) es el lenguaje de programación principal del sistema SAP ERP, utilizado para desarrollar aplicaciones de negocio críticas que deben procesar grandes volúmenes de datos con alta confiabilidad. La performance en este contexto hace referencia al tiempo de ejecución, consumo de recursos y optimización de procesos dentro del entorno SAP. Este resumen aborda en 1000 palabras exactas los principios, prácticas y consideraciones clave para mejorar la performance en programación ABAP. La performance...

Acceder a esta publicación

Creado y Compartido por: David Ibarra / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Expert


La performance en ABAP 1 La performance en ABAP Se refiere al rendimiento y la eficiencia con la que se ejecuta el código. Es un aspecto fundamental, ya que un mal desempeño puede afectar no solo la ejecución de un programa, sino el funcionamiento general del sistema SAP. Existen tres aspectos clave que determinan la performance de un programa ABAP: Tiempo de procesamiento de la lógica ABAP: Se refiere al tiempo que toma ejecutar las instrucciones y procesos internos del programa. Tiempo de acceso a la base de datos: Es el tiempo necesario para consultar, insertar, modificar o eliminar datos en las tablas del sistema. Este es el factor que más influye en el rendimiento,...

Acceder a esta publicación

Creado y Compartido por: Geovanny Martínez Campoverde

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

SAP Senior

Performace en ABAP en abap existe buenas y malas practicas, por que afectan rendimiento o performance (analisis de desempeño y rendimiento) de programas o otros factores tiene que ver con 3 aspectos base: *el tiempo de proceso de la logica *tiempo de proceso de accesos a tablas de database *tiempo de proceso de sistema SAP el tiempo de procesamiento a las tablas es el que mas consume recursos la transaccion SE30 Analisis de tiempo de ejecucion permite evaluar la distribucion del tiempo en un programa: en la pantalla principal se pone nombre del prog a evaluar buenas y malas practicas en accesos a la base de datos evitar usar SELECT * es mejor especificar los campos evitar SELECT ENDSELECT es mejor usar INTO TABLE evitar SELECT...

Acceder a esta publicación

Creado y Compartido por: Luciano Martinez / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Expert


Dentro de la programación en ABAP podemos identificar cuáles son las buenas y las malas prácticas de programación, desde el punto de vista de la performance de nuestros desarrollos. Es sumamente importante 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 base de datos contienen millones de registros y cada micro segundo cuenta. ABAP nos proporciona una herramienta muy útil e interesante para el análisis de la performance que es la transacción estándar ST05 Tips and Tricks. Allí veremos que los tiempos de...

Acceder a esta publicación

Creado y Compartido por: Jose Medina / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Master

LA PERFORMANCE EN ABAP: en ABAP existen lo que en programación se denomina buenas y malas prácticas, ya sea porque afectan al rendimiento o la performance de los programas o porque afectan a otros factores que son determinados como ser la reutilización y el mantenimiento de código. Cuando hablemos de performance nos estaremos refiriendo al análisis del desempeño y el rendimiento del programa ABAP. Dentro de ABAP podemos decir que la performance de un programa tiene que ver con 3 aspectos fundamentales que son los siguientes: - El tiempo de procesamiento de la lógica ABAP existente en el programa. - El tiempo de procesamiento de los accesos a las tablas de la base de datos. - El tiempo de procesamiento...

Acceder a esta publicación

Creado y Compartido por: Jean Carlos Lopez / Disponibilidad Laboral: FullTime

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

SAP Expert


Performance in ABAP Performance refers to the analysis of the execution and efficiency of ABAP programs. In this analysis, there are three fundamental aspects: The processing time of the program logic. The processing time of accesses to database tables. The processing time of the ABAP system. Of these three times, the most resource-consuming one is the processing time of accesses to database tables, followed by the processing of logic, and finally the processing of the ABAP system. For this analysis, we have the transaction SE30, which evaluates how the execution and processing time of the program are distributed. To do this, upon entry, the name of the program is indicated, and the Evaluate button is pressed. This will show us...

Acceder a esta publicación

Creado y Compartido por: Jaime Eduardo Gomez Arango / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Senior

Performance en ABAP El performances refiere a el análisis del desempeño y el rendimiento del programa ABAP. En este análisis existe los siguiente 3 aspectos fundamentales: * El tiempo de procesamiento de la lógica del programa. * El tiempo de procesamiento de los accesos a las tablas de las bases de datos. * El tiempo del procesamiento del sistema ABAP. De estos 3 tiempos, el que más recursos consume es el tiempo de procesamiento de los accesos a las tablas de bases de datos, luego esta el procesamiento de la lógica y finalmente el procesamiento del sistema ABAP. Para este análisis contamos con la transacción SE30 que evaluar cómo se distribuye el tiempo de ejecución y procesamiento...

Acceder a esta publicación

Creado y Compartido por: Linda Carolina Zambrano León

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 99.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!