✒️El análisis y la optimización con SAP HANA
El análisis y la optimización con SAP HANA
1 Introducción al análisis y optimización con SAP HANA
Opciones con las que contamos:
- Realizar traces de SQL a través de la transacción ST05.
- El análisis de tiempo de ejecución de ABAP mediante la tx SAT: evolución de la tx: SE30, la sección "Tips and tricks" nos permite comparar la performance de diferentes sentencias ABAP.
- La verificación ampliada de código a través de la transacción SLIN: Verifica estaticamente el código y detecta entre otras cuestiones muy valiosas, el código existente que no se utiliza.
- Chequear el código generado a través del inspector de código de SAP con la transacción SCI: Podemos realizar comprobaciones de performance, seguridad, sintaxis, uso de convenciones de nombre, programación robusta, etc.
- El ABAP Test Cockpit correspondiente a la transacción ATC: Presenta los mismos chequeos que la tx SCI, sumado a chequeos de calidad de nuestras aplicaciones sean mas eficientes y completas.
- La utilizacipón de los registros estadísticos mediante la transacción STAD: Nos proporcionan una visión general simple de los tiempos de la base de datos.
- EL análisis de transacciones individuales a través de la tx ST12: herramienta que combina STAD, SAT y ST05.
- El análisis de errores en tiempo de ejecución mediante la transacción ST22: información para solucionar el problema que originó el dump.
- El Monitor SQL a través de la transacción SQLM: Supervisa el sistema de producción y proporciona datos de optimización del rendimiento
- El SQL Performance Tunnin WorkList Tool mediante la tx SWLT: Podemos combinar el Monitor de SQL con los resultados de análisis del código.
2 Análisis del código ABAP
El inspector de código (Tx SCI) nos puede ayudar a identificar partes del programa que tienen potencial de mejora para SAP HANA
Al ejecutarlo recibiremos lista de mensajes con prioridad
SAP no permite escanear el código estándar
Cosas que debemos saber:
- Variante de verificacion: Define las reglas que se aplicarán, las comprobaciones que se realizarán y su configuración.
- Object set(Conjunto de objetos): Objetos de desarrollo que se incluirán.
- Inspección en inspector de código: Que comprobaciones deben aplicarse a qué objetos de desarrollo.
- Elementos globales están disponibles para todos los usuarios.
- Elementos locales están asociados directamente a un ID de usuario.
- SAP proporciona una varialnte global con el nombre "DEFAULT"-
2.1 Verificaciones relevantes al Migrar a SAP HANA
Durante la migración a SAP HANA, la principal prioridad es asegurarnos que no se experimente ningún contratiempo funcional, incluido las cancelaciones de programas dumps y los cambios no deseados en el comportamiento de una apliación.
- Native SQL y hints de base de datos: Tendremos que verificar la compatibilidad, en caso de haberlo usado.
- Comportamiento del SORT: En tablas columnares debemos especificar ORDER BY para recibir datos ordenados o posteriormente ordenar en ABAP usando un SORT.
- Adios a las tablas cluster y pool: Ahora serán tablas transparentes, dicha conversión es automática. SAP recomienda especificar ordenamiento.
- En el inspector habrá disponible un check, para ayudarnos a encontrar programas con SELECTs sin ORDEN BY.
2.2 Verificaciones relevantes al Optimizar para SAP HANA
Uso inseguro de FOR ALL ENTRIES |
Por mejor performance utilizamos FOR ALL ENTRIES o JOIN en lugar de SELECT anidado. Pero debemos verificar que la tabla interna no se encuentré vacia o nos traerá todos los registros de la tabla. |
Buscar las sentencias FOR ALL ENTRIES para transformarlas en joins |
Comunmente los join ofrencen ventajas sobre la cláusula FOR ALL ENTRIES. Podemos realizar una comprobación de las cláusulas FOR ALL ENTRIES de modo de convertirlas en joins. |
Declaraciones SELECT que omiten el Buffer de tabla |
El buffer al crear una tabala todavía juega un papel importante cuando se usa SAP HANA. No debemos omitir este buffer si se ha activado el buffer para una tabla. Debemos realizar una comprobación en laas instrucciones SELECT que ignoran el buffer.
|
Instrucciones problemáticas SELECT * |
Debemos evitar leer columnas que no necesitamos Hay una verificación disponible para encontrar sentencias SELECT que seleccionan demasiados campos. Solo con el código de retorno SY-SUBRC de la instrucción SELECT es suficiente para verificar. |
Buscando SELECTs en LOOPs en subrutinas |
El gran número de accesos sucesivos causan problemas de rendimiento, caso que se dá en accesos que se ejecutan en LOOPs. Hay una serie de controles que pueden encontrar esos LOOPs. |
EXIT/CHECK en SELECT-ENDSELCT |
Si utilizamos la sentencia EXIT para salir de un SELECT-ENDSELECT, es posible que se lean registros inecesariamente. Debemos usar la sentencia CHECK inmediatamente luego de la instrucción SELECT, esas dos expresiones se puden convertir en una condicón WHERE adecuada. |
 
 
 
Agradecimiento:
Ha agradecido este aporte: Jes?s Qui?onez L?pez
Sobre el autor
Publicación académica de Mart?n Ramss?s G?mez Rodr?guez, en su ámbito de estudios para el Máster ABAP for HANA.
Mart?n Ramss?s G?mez Rodr?guez
Profesión: Desarrollador Software - Mexico - Legajo: QS57M
✒️Autor de: 10 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Desarollarme profesionalmente para seguir apoyando a la sociedad, de manera ?tica y con valores
Certificación Académica de Mart?n G?mez