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

 X 

✒️ABAP La performance en ABAP

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.


 

 

 

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.

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

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!