PROMO JULIO en CVOSOFT United States Of America: 💎Calidad, 🔥Bonificaciones, 🥶Precios Congelados y MÁS!

 X 

✒️El análisis y la optimización con SAP HANA

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

Ya sea que deseemos optimizar código ABAP existente o generar desde cero código ABAP para aprovechar al máximo la potencialidad del paradigma code pushdown, tenemos una serie de herramientas de análisis de tiempo de ejecución y error disponibles para cumplir con dicho propósito.

Tal vez algunas las conocemos como desarrolladores ABAP, veamos cada una de ellas:

  • Realizar traces de SQL mediante transacción ST05: Para poder conocer a que tablas de BD accede un programa y determinar si un SELECT se demora demasiado por acceder de forma no óptima a la(s) tablas(s).
  • Análisis de tiempo de ejecución de ABAP mediante transacción SAT: Es la evolución de la SE30 y permite realizar análisis en tiempo de ejecución. La sección "Tips and tricks" de esta nueva transacción nos permite comparar el performance de diferentes sentencias ABAP.
  • Verificación ampliada de código mediante transacción SLIN: Para realizar verificación estática del código y detectar entre otras cuestiones, código que no se utiliza.
  • Revisar código generado a través del inspector de código de SAP mediante transacción SCI: Para realizar comprobaciones de performance, seguridad, sintaxis, convenciones de nombres, programación robusta, etc.
  • El ABAP Test Cockpit de la transacción ATC: Es la evolución del inspector de código. Presenta las mismas revisiones que SCI sumado a una serie de mejoras que hacen que las revisiones de calidad sean mas eficientes y completas.
  • Utilizar registros estadísticos mediante transacción STAD: Nos proporciona una visión general simple de los tiempos de la base de datos y son un punto de partida útil.
  • Análisis de transacciones individuales mediante transacción ST12: Es una herramienta especial que combina STAD, SAT y ST05 en una sola interfaz.
  • Analizar errores en tiempo de ejecución mediante transacción ST22: Nos proporciona información valiosa y detallada sobre el problema que originó en DUMP.
  • (ABAP 7.4 en adelante) Monitor SQL mediante transacción SQLM: Supervisa el sistema de producción y proporciona datos para optimización del rendimiento. Basicamente recopila, agrega y persiste la información en tiempo de ejecución sobre las sentencias SQL en la interfaz de la base de datos. La memoria caché de SQL proporciona información sobre la declaración SQL (cantidad de páginas leídas o tiempos de E/S y CPU) y esos datos junto con la información del programa y contexto de llamada en que se ejecutó estan disponibles en SQLM. En consecuencia, toda esta información se complementa y proporciona información adicional específica sobre las sentencias SQL ejecutadas.
  • (ABAP 7.4 en adelante) SQL Performance Tunning Worklist Tool mediante transacción SWLT: Para combinar los datos del monitos SQL con los resultados del análisis del código y por lo tanto, hacer planes para lograr una optimización valiosa.

A continuación vamos a analizar a detalle algunas de las herramientas mencionadas y que resultan útiles para identificar partes de un programa ABAP que tienen potencial de ser optimizadas.

2 Análisis del código ABAP

El inspector de código SCI puede ayudarnos a identificar las partes del programa que tienen potencial de mejora para SAP HANA. Presenta una serie de comprobaciones que podemos realizar en los objetos de desarrollo y una vez ejecutado nos mostrará una lista de mensajes con prioridad, cada uno asignado a la verificación correspondiente. Cabe señalar que pueden ocurrir falsas alarmas, es algo que debemos tener en consideración y saber que es posible insertar comentarios especiales en el código ABAP para evitar que se emitan dichos mensajes. Recordemos que el inspector verifica rendimiento, seguridad, sintaxis y cumplimiento de convenciones de nombres sobre objetos individuales o grupos de objetos.

Antes de continuar, necesitamos conocer algunas definiciones:

  • Variante de verificacion: Define las reglas que se aplicaran, comprobaciones a realizar y configuracion de dichas compobraciones.
  • Conjunto de objetos y Object Set: Define los objetos de desarrollo que se incluirán en la inspección.
  • Inspección: Define una combinación de variante de verificación y conjunto de objetos, es decir, que comprobaciones se realizarán sobre que objetos.
  • Diferencia entre variantes locales y globales: Lo global esta disponible para todos los usuarios, los locales están asociados con un ID de usuario.
  • Variante Default: SAP la proporciona y es la que se utiliza para objetos que se verifican en el menu contextual de programas, clases, módulos, etc. Cabe señalar que si creamos una variante de verificación llamada Default, esa es la que SAP utilizará en lugar de la global.

El Code Inspector te permite definir variantes, conjunto de objetos y tus corridas (inspecciones). Ojo, después de la primera vez que realizas una inspección, la siguiente vez ya no es "nueva inspección" sino "crear nueva versión" de la inspección para que simplemente repita la ejecución y ver los nuevos resultados después de haber realizado nuestras modificaciones pertinentes.

A continuación un video donde se habla de lo anterior: ***VIDEO AQUI***

2.1 Verificaciones relevantes al migrar a SAP HANA

Nuestro principal objeto al migrar debe ser que no se experimente ningún contratiempo funcional, incluyendo cancelaciones por DUMPs y cambios no deseados en el comportamiento de nuestras aplicaciones. En general, gracias a la compatiblidad y portabilidad del código ABAP, no es necesario realizar ajustes a los programas.

2.1.1 Native SQL y Hints de base de datos

Una excepción a la compatibilidad son las implementaciones de bases de datos, es decir, utilización de SQL Nativo o Hints para bases de datos. Los Hinst son particularmente comunes en implementaciones de SAP donde se utiliza Oracle como base de datos para forzar el uso de índices de las tablas. Estas sentencias ya no funcionarán después de migrar a SAP HANA.

Para ayudarnos a localizar estos códigos dentro de ABAP podemos utilizar las siguientes comprobaciones del inspector de código: Uso de la interfase ADBC y Sentencias críticas.

2.1.2 Comportamiento del SORT

El comportamiento del ordenamiento de los registros recuperados de las tablas luego de un SELECT puede requerir adaptaciones, particularmente si no estabamos ordenando nada ya sea con ORDER BY o con SORT.

En las bases de datos clásicas, la secuencia de ordenamiento podía tener que ver con un índice utilizado para la consulta pero era una coincidencia, no es que hubiese garantía de que así sería. Para una programación estable teníamos que especificar un ordenamiento.

En bases de datos columnares si no se especifica la cláusula ORDER BY, la base de datos devolverá los registros desordenados. Si deseamos recibir los datos en una secuencia determinada, debemos utilizar ORDER BY o posteriormente ordenar en el código ABAP usando SORT.

2.1.3 Adios a tablas cluster y pool

Las tablas cluster y pool en SAP HANA son convertidas en tablas transparentes. Esto es automático y no involucra cambios a las aplicaciones que las utilizan. Lo único a considerar es, como se mencionó en el punto anterior, que se debe realizar un ordenamiento explícito a los resultados obtenidos si es que esperamos un cierto orden en los registros.

2.2 Verificaciones relevantes al optimizar para SAP HANA

Para identificar el potencial de optimizaci[on en el contexto de los accesos a base de datos contamos con un amplio rango de verificaciones que se pueden realizar, la mayoría de ellas orientadas a performance.

2.2.1 Uso inseguro de FOR ALL ENTRIES

Si utilizamos un FOR ALL ENTRIES debemos tener presente que la tabla interna que se utiliza nunca debe estar vacía o de lo contrario todos los registros de la tabla serán leídos. Es por ello que siempre debemos revisar que la tabla interna no se encuentre vacía antes de ejecutar el FOR ALL ENTRIES.

2.2.2 Buscar sentencias FOR ALL ENTRIES para transformarlas en JOINs

En muchos casos, un join ofrece ventajas de rendimiento sobre la cláusula FOR ALL ENTRIES. Debido a ello, podemos realizar una comprobación para realizar esta conversión o sustitución.

2.2.3 Declaraciones SELECT que omiten el buffer de tabla

El buffer sigue siendo útil en SAP HANA. Para evitar una mayor carga de la base de datos, no debemos omitir ese buffer si se ha activado para determinada tabla. Para ello, hay que realizar una comprobación en los SELECT que omitan su utilización.

2.2.4 Buscando SELECTs en LOOPS en subrutinas

Por lo general, los problemas de rendimiento tienen que ver con múltiples accesos sucesivos a la base de datos. Por ejemplo por realizarse dentro de LOOPS o en subrutinas que incluyen una llamada pero son ejecutadas desde un LOOP.

2.2.5 EXIT/CHECK en SELECT...ENDSELECT

Si utilizamos la sentencia EXIT para salir de un SELECT...ENDSELECT, es posible que una gran cantidad de registros de datos se lean innecesariamente y esto se debe a que los datos se transfieren en bloques. En ese caso debemos usar la sentencia CHECK inmediatamente luego a la instrucción SELECT para indicar que no se usa un filtro hasta que se han leído los datos. Con frecuencia, estas dos expresiones se pueden convertir en una condición WHERE adecuada.

Tips

  • Previo a la migración resulta valioso analizar que, de todos los desarrollos Z existentes, sigue siendo utilizado. Esto para optimizar solo los programas que realmente se usan. Seguramente encontrarás varios que ya no son necesarios.
  • SAP no permite escanear el código estándar del sistema con el inspector de código.
  • Podemos configurar variantes de verificación en la SCI de forma personalidad pero cabe señalar que SAP nos da algunas variantes que pueden sernos de mucha utilidad, por mencionar alguna tenemos la llamada PERFORMANCEDB.
  • En ECC se recomendaba por performance no utilizar SELECT...ENDSELECT sino reemplazarla por SELECT SINGLE o SELECT INTO TABLE según fuera necesario. Esta misma recomendación sigue siendo válida en SAP S/4HANA.
  • Podemos usar la opción "Buscar enunciados problemáticos para resultados de SELECT OPEN CURSOR SIN ORDER BY" de la verificación del inspector de código ABAP para encontrar partes de programas que necesitan conjuntos de resultados que requiere una ordenación y que tal vez no la tengan. Un ejemplo de ello serían las búsquedas binarias. Puedes buscarlo en la categoría de Programación robusta.


 

 

 

Agradecimiento:

Ha agradecido este aporte: Martín Gómez Rodríguez


Sobre el autor

Publicación académica de Abraham Humberto Noriega Cabrera, en su ámbito de estudios para el Máster ABAP for HANA.

SAP SemiSenior

Abraham Humberto Noriega Cabrera

Profesión: Ingeniero Sistemas Computacionales - Mexico - Legajo: WO62V

✒️Autor de: 14 Publicaciones Académicas

🎓Egresado del módulo:

Disponibilidad Laboral: FullTime

Presentación:

Ingeniero en sistemas computacionales con experiencia en análisis, desarrollo e implementación de sistemas. he tenido el gusto de participar en implementaciones tanto locales como a nivel estatal.

Certificación Académica de Abraham Noriega

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El análisis y la optimización con SAP HANA" de la mano de nuestros alumnos.

SAP SemiSenior

Unidad 2: Lección 3 Análisis y optimización con SAP HANA Herramientas para análisis Traces de SQL a través de la transacción ST05 Análisis de tiempo de ejecución abap mediante la transacción SZT antes SE30 Verificación ampliada de código a través de la transacción SLIN Chequear el código generado a través del Inspector de código de SAP con la transacción SCI ABAP Test Cockpit correspondiente a la transacción ATC Utilización de registros estadísticos mediante la transacción STAD Análisis de transacciones individuales a través de la transacción ST12...

Acceder a esta publicación

Creado y Compartido por: Alejandra Soto Guerrero

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

SAP Junior

PROGRAMA ABAP HANA AVANZADA 1. Introducción al análisis y optimización con SAP HANA para cumplir con este proposito se utilizan las sgtes herramientas de análisis de ejecución y error disponibles: A. Realizar traces de SQL con ST05 permite conocer a que tablas de BD accede un programa de modo de poder determinar. B. Análisis de tiempo de ejecución ABAP mediante la SAT, es la evolución de la famosa SE30 esta transacción nos permite comparar la performance de diferente sentencias ABAP. C. La verificación ampliada de código a través de la tx. SLIN, permite una verificación estática del código y nos permite detectar entre otras cuestiones muy...

Acceder a esta publicación

Creado y Compartido por: Maria Xiomara Rodriguez Panqueva / Disponibilidad Laboral: FullTime

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

SAP Master


Analisis y Optimizacion con SAP HANA Tenemos varias herramientas existentes para validar y verificar un optimo funcionamiento de código: ST05- Traces de SQL SAT- análisis en tiempo de ejecución SLIN- Verificación ampliada de código SCI- Inspector de código SAP ATC- ABAP Test Cockpit STAD- utilización de los registros estadísticos ST12- analisis transaccionales individuales ST22- Análisis de errores en tiempo de ejecución Al mismo tiempo tenemos herramientas nuevas con SAP HANA: SQLM- Monitor SQL el cual supervisa el sistea de producción y proporciona datos de optimización y rendimiento. SWLT- SQL Performace Tunning WorkList Tool...

Acceder a esta publicación

Creado y Compartido por: Javier Montero Quintal

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

SAP SemiSenior

Análisis y optimización con Sap Hana 1. Introducción. Herramientas para optimizar códigos Abap existentes o crear nuevo códigos eficientes Tx ST05 : Realiza traces de SQL, determinando a que tablas accede un programa y si se está accediendo de forma óptima a la tabla Tx SAT : Realiza el análisis de tiempo de ejecución de Abap. Es la evolución de la Tx SE30 Tx SLIN : Es la verificación ampliada de código, con la cual se realiza verificación estática del código y permite detectar el código existente que no se utiliza, entre otras funcionalidades Tx SCI : Permite chequear el código generado a través del...

Acceder a esta publicación

Creado y Compartido por: Sergio Diaz

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

El análisis y la optimización con SAP HANA ............................................................................................................................................................................................. ¿Qué enfoque adoptar y que herramientas utilizar para realizar la optimización de los códigos ABAP existentes o nuevos para aprovechar al máximo la pontecialidad que presenta el modelo code pushdown? Realizar traces de SQL a través de la transacción ST05. Con esta transacción conocemos las trazas de SQL, es decir; a qué tablas de base de datos accede un programa, lo cual nos permite analizar si se está accediendo de forma no...

Acceder a esta publicación

Creado y Compartido por: Johanna Thaina Rangel Lucero / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP SemiSenior

Introducción al análisis y optimización con SAP HANA Realizar traces de SQL con ST05 El análisis de tiempo de ejecución con SAT: Es la evolución de la SE30. La verificación ampliada con SLIN El code inspector con SCI El ABAP Test Cockpit con ATC: Es la evolución del code inspector. La utilización de los registros estadísticos con STAD: Nos proporciona una visión general simple de los tiempos de la base de datos. El análisis de transacciones individuales con ST12: Combina STAD, SAT y ST05. El análisis de errores en tiempo de ejecución con ST22 A partir de ABAP 7.4, tenemos herramientas nuevas: El monitor SQL...

Acceder a esta publicación

Creado y Compartido por: Sergio Ariel Del Sordo

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

SAP Junior

Análisis y optimización con SAP Hana Tradicionalmente: ST05 Trace SQL Análisis en tiempo de ejecución Tx SAT (SE30) Verificación ampliada de código (estática) Tx SLIN. Pej: código no utilizado Code Inspector SCI: Perfromance seguridad, sintaxis, convenciones nombres, prog robusta ABAP test cockpit Tx ATC. Evolución de SCI con chequeos más completos Tx STAD: Visión general tiempos de BD ST12: Combina STAD SAT y ST05 ST22: Análisis de DUMP Desde 7.4: Monitor SQL Tx SQLM. Recopila información sobre sentencias SQL y memoria caché de SQL(páginas leídas, tiempos CPU ES) Tx SWLT SQL Performance tunning tool. Combinar datos SQLM con resultados...

Acceder a esta publicación

Creado y Compartido por: Danilo Cortes

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

SAP Junior

ANALISIS Y OPTIMIZACIÓN CON SAP HANA Transacciones ST05 (Trace) SAT(Analis de tiempo de ejeución) -Antigua SE30 SLIN(Verificación ampliada de código) SCI (Code Inspector) ATC (Code Inspector mejorado) STAD (Estadisticas de BBDD) ST12 (STAD + SAT + ST05) ST22 (Analisis de DUMPS) SQLM (Monitor SQL) SWLT ( Combina SQLM + análisis de codigo) Verificaciones para la migración a SAP HANA Eliminar todas las secuencias de SQL Nativo ( HINTS, ...) - Estos código se pueden localizar con ayuda del Code Inspector (comprobaciones Uso de la Interfase ADBC y Sentencias Criticas Se deben añadir la clausula ORDER BY a las sentencias SELECT o SORT despues...

Acceder a esta publicación

Creado y Compartido por: Miguel Angel Cordero / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP Training

Analisis y optimización con SAP HANA Codigo PushDown: Se realiza el procesamiento de datos en la capa de la base de datos. Herramientas de analisis: ST05 (Trace SQL): Determina a que tablas accede un programa para saber el tiempo que demora en consultas, etc. SAT (Antes SE30): Compara el performance de diferentes sentencias ABAP en tiempo de ejecución (Tip and Tricks). SLIN: Verifica el código para detectar posibles errores o advertencias y código no utilizado. SCI: Inspector de código para comprobar seguridad, sintaxis, etc. ATC: Inspector de código igual que SCI pero con mejoras en revisión de calidad. STAD: Analisis de los tiempos de las bases de datos. ST12: Contiene...

Acceder a esta publicación

Creado y Compartido por: Angeles Lucero Ruiz Saucedo / Disponibilidad Laboral: FullTime + Carta Presentación

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

SAP SemiSenior

1. Introducción al análisis y optimización con SAP HANA Para cumplir con este propósito contamos con una serie de herramientas de análisis de tiempo de ejecución y error disponibles. - Realizar traces de SQL a través de la transacción ST05. Para detectar que tablas bases de datos accede un programa. - El análisis de tiempo de ejecución de ABAP mediante la transacción SAT. - La verificación ampliada de código a través de la transacción SLIN. Detectar 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. Performance, seguridad, sintaxis,...

Acceder a esta publicación

Creado y Compartido por: Oscar Iván Eugenio Trejo / Disponibilidad Laboral: PartTime

 


 

👌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!