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

 X 

✒️Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA

Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA

Las recomendaciones para desarrollar aplicaciones ABAP en SAP HANA

1) TIPS PRÁCTICOS DESARROLLAR ABAP EN HANA

2) Recomendaciones generales:

2.1) Almacenamiento x columnas v/s por filas:

- Al crear tabla se puede elegir tipo almacenamiento, por defecto es columna.

- Se recomienda que sea por columnas por estos datos se usarán para análisis.

- Además por que permite comprimir mejor las tablas.

- Se aplica a tablas que usan búsqueda por texto.

- Se puede usar almacenar por fila cdo accede a tabla con lenguaje de manipulación de datos, como Update, Insert o Delete. Son las tablas técnicas de SAP, tabla del paquete STSK o al paquete SRFC. Se accede con select single.

- En SAP HANA se especifica tipo almacenamiento en SE11, opciones técnicas, en DB-specific properties.

- En almacenamiento por filas, los datos se guardan uno al lado del otro, permite acceso a toda la fila. Es complicado sacar datos por columna. El pasar de memoria principal a CPU no es tan eficiente como el basado en columnas. La compresión de datos es menos eficiente.

- En almacenamiento por columnas, el contenido de columna se ponen uno a lado del otro en memoria principal, así las operaciones de un dato de columna están todos juntos. Esto beneficia el paso desde memoria principal a CPU. Facilita la compresión eficiente y agregación de datos basado en una columna.

-Los datos comerciales se guardan en columnas, por que sus ventajas superan a sus desventajas.

- Compresión de datos, SAP HANA proporciona técnicas para almacenar por columna, tanto en RAM como en disco. La alta compresión incide en el tiempo de ejecución por que reduce el tiempo de traspaso desde RAM a CPU.

- Técnicas de compresión son muy eficientes respecto al tiempo de ejecución. Se basan en codificación del diccionario, donde contenido de columnas se almacenan como enteros codificados en vector de atributos. Aqui codificación significa pasar traducir contenido de un camp en un entero.

- Para almacenar por columna, HANA crea 2 estructuras de datos, Vector de diccionario y vector de atributo.

- Vector de diccionario :

a) Almacena cada valor de una columna solo una vez.

b) Por ejemplo: columna genero puede tener M o F.

columna ubicación 3 valores Chicago, San y Dallas.

c) Los contenidos se almacenan como dato ordenado.

d) Esto es : 1 para F y 2 para M

2.2) IMPLEMENTACIONES ESPECÍFICAS DE SAP HANA.

- Implementaciones independiente BD : Open SQL y ABAP CDS.

- Implementaciones usan funciones específicas HANA: SQL Nativo y HANA CDS.

- Se usa SAP HANA como cualquier BD, se beneficia de la alta velocidad.

- Desarrollos ejecutables con BD soportadas por SAP -

- Para definir que BD usar, se debe analizar caso a caso.

- Para optimizar una aplicación ABAP existente, se recomienda comenzar con herramientas estándar.

- Siguiente pauta ayuda :

1) PRIMERO OPEN Y LUEGO NATIVE:

  • Usar vistas OPEN SQL y CDS, antes de SQL NATIVE , vistas SAP HANA o procedimientos BD.
  • Funciones abiertas integran mejor a desarrollo ABAP y tiempo de ejecución ABAP
  • Servidor aplicación ABAP valida sus objetos y no necesita usuario adicional SAP HANA.

2) PRIMERO ABAP CDS Y LUEGO HANA CDS.

  • Usar procedimiento BD ABAP en lugar de procedimiento BD HANA.
  • Objetos desarrollos gestionados por ABAP AS se vincula con ciclo de vida ABAP.
  • Se puede sincronizar procedimientos BD ABAP con otros objetos ABAP y transportarlos.

2.3) RECOMENDACIONES PARA LA MIGRACIÓN.

- Una regla básica es que aplicaciones ABAP son totalmente compatibles.

1) CÓDIGO ABAP DEPENDIENTE DE LA BASE DE DATOS:

  • Código ABAP es dependiente de la BD, probar y ajustar para BD SAP HANA si es necesario.
  • Si hay SQL Nativo en código ABAP, como EXEC SQL o hints BD, se deben verificar
  • Si no ejecuta hints BD al migrar a SAP HANA, hay que comprobar ya que pueden ocurrir errores.
  • Un hints de BD, es forzar ejecución indice y dividir carga de trabaja. No funcionan en SAP HANA y no son necesarias debido a arquitectura de BD HANA.

2) CONVERSIÓN TABLAS POOL Y CLUSTER.

  • Al convertir tabla cluster y pool a transparentes, puede generar problemas si confiamos en el ordenamiento de los programas.
  • Esto se debe a que tabla cluster y pool, la interfase de BD siempre realiza un ordenamiento implícito.
  • Se pierde ordenamiento por que no se agrega ORDER BY.

4) COMPORTAMIENTO DEL ORDENAMIENTO:

  • Especificar ORDER BY, para no causar problemas de ordenamiento.
  • SAP HANA ordenamiento implícito no está garantizado por que no es característica documentada de OPEN SQL.
  • Esto se debe a que en SAP HANA es columnar, no tiene índice secundarios y datos se pueden leer en paralelo.

3) PAUTAS DE PERFORMANCE.

Reglas para optimizar de las BD y son:

1) MANTENER CONJUNTO RESULTADO LO MAS PEQUEÑO POSIBLE.

Para SAP HANA no hay cambios en la transferencia de datos.

Se aplica sin cambios y con la misma prioridad para SAP HANA

  • Usando cláusula WHERE, usar solo cdo se necesite restringir.
  • Usando cláusula HAVING
  • - Permite reducir filas seleccionadas.
  • - Se usa con clausula GROUP BY y selecciona cierto grupo.
  • - GROUP BY son lo campos de agrupación.
  • Transfiriendo solo las filas requeridas:
  • - Sacar de base datos solo los reg requeridos.
  • - Los datos que no sirvan, se deben eliminar desde la tabla interna.

2) DATOS TRANSFERIDOS LO MAS PEQUEÑO POSIBLE.

- Es para reducir recursos de BD.

- En SAP HANA se aplica sin cambios.

- Almacenados por fila, bloques de columnas están lejanos.

- Almacenados por columna, cada columna es una estructuras del almacenamiento

- Esta estructura de almacenamiento puede procesar en paralelo.

- El tiempo requerido para varias columnas es ligeramente mayor.

  • Utilizando adición UP TO n ROWS.
  • - Permite restringir número de filas
  • - Permite restringir en un SELECT ...ENDSELECT
  • - FROM scumtom UP TO n ROWS
  • Trabajando con DISTINCT.
  • - Permite evitar las entradas duplicadas en BD
  • - SELECT DISTINC ....
  • Reduciendo el número de columnas.
  • - Seleccionar solo las columnas de BD que se necesitan.
  • - Utilizar SELECT * si todas columnas son necesarias.
  • Utilizando funciones de agregación.
  • - Los cálculos realizar en la BD y transferir el resultado.
  • -SELECT SUM( AA) ..INTO LV_AA
  • Realizar chequeos de existencia eficientemente.
  • - Utilizar solo si necesita realizar un cálculo.
  • - Permite contar cdo hay más de un registro para condiciones.
  • Modificando sólo las columnas necesarias.
  • - Se utiliza la clausula UPDATE y SET.

3) REDUCIR NÚMERO DE EJECUCIONES

  • Se debe mantener el número de accesos los mas bajo.
  • En SELECT usar INTO TABLE
  • Evitar acceso dobel a datos, por ej un SELECT no hacer un DELETE para mismas condiciones.
  • No usar SELECT anidados, usar JOIN si es posible, vistas o FOR ALL ENTRIES.
  • No hacer SELECT dentro de LOOP.
  • Usar Buffer en tablas SAP.

4) MINIMIZAR ESFUERZO BÚSQUEDA

  • Indices de BD en BD clásica
  • Indices consta de campos de BD.
  • Primarios: Campo clave principal, es único y se crea al generar la tabla.
  • Secundarios:pueden ser únicos o no. Se deben crear.
  • - Se usan para optimizar rendimiento
  • - Solo para tablas con acceso de escritura crítico.
  • - Deben ser pocos.
  • - Evitar solapamiento al crearlos.
  • - deben ser campos de uso habitual para búsqueda.
  • - Los campos con + posibilidad de consulta deben ir con operador = al principio del indice.
  • Indice de la base de datos en SAP HANA.
  • - Indices invertidos y compuestos.
  • -Compuestos:
  • - Usan + memoria por que tienen estructura.
  • - Crearse excepciones, cdo columnas juntas hacen una llave.
  • - Invertidos:
  • - Se recomienda usar estos.
  • - Se deben crear para columnas que tengan más selectividad.
  • - Al migrar a SAP HANA ya no se crean índices secundarios en tabla por columnas.

5) REDUCIR CARGA EN BASE DE DATOS

  • Se recomienda reducir carga a DB.
  • BD es recurso central del sistema SAP.
  • Las carga de opreraciones repetidas en BD deben ser pequeñas.
  • Utilizando buffers, estos son importantes como:
  • - Cross disponibles en servidor de aplicaciones y son:
  • objetos, buffer, memoria compartida y buffer tabla.
  • - Disponible en una sesión de usuario y son:
  • Memoria SAp, ABAP y programación en tablas internas
  • Es mas rápido acceder a buffer que a BD
  • Esto se debe a que memoria principal del servidor aplicaciones está en mismo servidor que ejecuta programas ABAP.
  • Acceso a buffer de la tabla es 10 veces + rápido que acceso a datos BD
  • Se debe almacenar en buffer los datos que requieren mucho tiempo para procesar u obtener. Esto edita consultas repetidas u costosas.
  • Ordenado: En BD o en AS ABAP
  • AS ABAP:
  • - Si BD no tiene índice, se debe ordenar en programa ABAP en AS ABAP.
  • En BD.
  • - Si se requiere ordenar muchos datos y obtener un resultado pequeño, se debe ordenar en BD.
  • - Si el ordenamiento es parte del cálculo o hacerlo no muy costosa en
  • Evitar acceso idénticos.
  • Evitar lecturas múltiples de datos idénticos.
  • Reduce acceso a BD y evitar cargas innecesarias a BD.
  • Se utilizan tablas internas o buffers para evitar accesos idénticos.
  • REGLA 5 :Aplicación coherente , evita consumo de CPU y carga reducida en la red.


 

 

 


Sobre el autor

Publicación académica de Sergio Mendez De La Fuente, en su ámbito de estudios para el Máster ABAP for HANA.

SAP SemiSenior

Sergio Mendez De La Fuente

Profesión: Ingeniero Informática - Chile - Legajo: EM27U

✒️Autor de: 11 Publicaciones Académicas

🎓Egresado del módulo:

Presentación:

Ingeniero informática con especialización en abap y funcional sd.

Certificación Académica de Sergio Mendez