✒️ABAP La performance en ABAP
ABAP La performance en ABAP
PERFORMANCE ABAP
Cuando se hacen ajustes al performance del desarrollo, se encuentran sentencias ABAP que generan costos elevados en tiempo de ejecución y surgen preguntas de cual alternativa existe para reemplazar estas sentencias por otras más eficientes.
Mediante 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.
La Transacción SE30 Tip and Tricks es una interesante utilidad para analizar tiempos de ejecución de los reports y analizar los consejos de programación que nos ofrece Sap para mejorar el rendimientos de los programas.
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 puede ser bastante útil a la hora de analizar los resultados que genera la transacción SE30 y hacer los ajustes de performance necesarios.
Líneas a seguir para conseguir un buen programa.
- Evitar códigos muertos.
- Eliminar código innecesario y/o procesos redundantes.
- Es bueno documentar los programas o insertar comentarios en los programas. Importante también notificar los cambios que se realicen en el programa.
- Perder tiempo en analizar lo que se necesita, que procesos utilizaremos y que tipo de datos y estructura vamos a utilizar.
- Tener un plan adecuado para planear las pruebas que se van hacer al programa.
Instrucciones que hacen que un programa sea más optimo.
LENTO
SELECT * FROM <TABLA>
CHECK: <CONDITION>
ENDSELECT
RAPIDO
SELECT * FROM <TABLA>
WHERE <CONDITION>
ENDSELECT
Siempre que sea posible poner las condiciones en los claúsula WHERE. Otro que penaliza el rendimiento es utilizar los operador OR, NOT e IN. Lo que mejora el rendimiento es el operador EQUAL o "=".
Otra diferencia está en el SELECT SINGLE *. que requiere una comunicación la base de datos y el SELECT * el cual requiere dos comunicaciones con la base de datos.
Mediante estos simples consejos, se garantizará un buen funcionamiento de las aplicaciones, y desempeño del servidor en general. Fundamentalmente lo que hace la diferencia en cuanto a rendimiento es la lectura por índices y luego balancear la carga entre acceso a base de datos y memoria.
Rendimiento de acceso a BBDD.
- Analizar si existen índices. Casi siempre es mejor traer más datos por índice y luego filtrar de Tabla Interna, que filtrar secuencialmente en la BBDD.
- Analizar la creación de tablas internas "buffer" para datos maestros de acceso repetitivo; como textos, nombres de acreedores o deudores, etc. De esta forma se evita consultar en exceso la base de datos. (básicamente lo que se hace es primero leer la TI y si no está buscarlo en la BBDD y agregarlo a la TI, siempre por búsqueda binaria). La regla de oro es que cuanto más se repita más optimizado quedara el proceso.
- Resulta más óptimo un JOIN bien organizado que un SELECT cabecera-> LOOP -> SELECT detalle. Las instrucciones SELECT.ENDSELECT no son lo recomendado por SAP en los ejemplos de ergonomía.
- En general resulta mucho más óptimo un SELECT FOR ALL ENTRIES (verificando que la tabla de consulta no esté vacía), antes que hacer SELECT SINGLE dentro de un LOOP. IMPORTANTE, siempre que sea posible utilizar SELECT-JOIN en lugar de SELECT FOR ALL ENTRIES, ya que es más eficiente considerablemente y permite al motor de BBDD optimizar los accesos.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Francisco Ortega Aguilar
Favorito:
Está publicación ha sido agregada a sus favoritos por: Francisco Ortega Aguilar
Sobre el autor
Publicación académica de Sergio Armando Beltran Castaneda, en su ámbito de estudios para la Carrera Consultor ABAP.
Sergio Armando Beltran Castaneda
Profesión: Ingeniero de Sistemas con Especialización en Gerencia de Proyectos - Colombia - Legajo: WK55K
✒️Autor de: 70 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Avanzado
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Soy ingeniero de sistemas desde hace mas de 10 años y quiero enfocarme en el mundo sap, iniciando en el lenguaje abap, con miras a ampliar mi conocimiento profesional y laboral.
Certificación Académica de Sergio Beltran