Tablas Hashed, Sorted y Standard. ABAP SAP.

Tablas Hashed, Sorted y Standard. Los tipos de tablas de SAP ABAP.

La definición del tipo de una tabla interna es muy importante y se debe analizar detenidamente antes de declararlas, pues de ellas dependerán el tratamiento de la información. Tendremos que elegir entre Hashed, Sorted o Standard

Primero tenemos que tener claro el objetivo de nuestro desarrollo, si por ejemplo vamos a listar datos del día actual o un histórico completo, por poner un ejemplo. Lo que prima a la hora de declarar estas tablas es cuanta información pueden llegar a contener y cual va a ser el método de acceso a ellas.

Si vamos a hacer un programilla chorra, temporal o de un solo uso, no nos compliquemos la vida, usemos un type standard y a correr.

Si nuestro desarrollo es complejo y va a abordar una gran cantidad de datos… ahí sí que tenemos que intentar sobre manera usar tablas hashed o sorted ya que de ello dependerá el rendimiento del proceso, y eso lo podéis comprobar por vosotros mismo realizando alguna prueba.

Usos para los tipos de tablas.

Para que estas tablas funcionen bien y los accesos sean inmediatos (parece magia al lado de una standard) tenemos que definir una clave por la que acceder y tienes que tenerla bien clara.

Sap aconseja usar tablas hashed cuando el acceso se va a realizar mediante READ y usar sorted cuando se trata de LOOPEAR la tabla. Lo he probado y es así.

En mis desarrollos intento siempre llevar a la práctica esto que os comento, aunque si desarrolláis sabréis que no es siempre posible.

En el tiempo que llevo con SAP he tenido varias épocas en las que he tenido que optimizar procesos por su mal rendimiento y larga duración, en la inmensa mayoría de casos hay lecturas o loopeos a tablas internas con más de un millón de registros y un número de campos extenso. Cambiando la lógica y la declaración de las tablas la mejora que se puede conseguir es abismal.

Dejo un ejemplo sencillo de un desarrollo que en el que se realizan acceso a tres tablas cada una de un tipo midiendo los tiempos.

Vamos a usar la tabla E070 de órdenes de transporte y hacer una selección que nos de unos 140.000 registros. Lo recuperaremos en una tabla auxiliar y la volcaremos en las 3 tablas creadas, hashed, sorted y standar.

Con todas las tablas informadas recorreremos tres veces la auxiliar con un LOOP y en cada una de ellas haremos un read table a una de las tablas hashed, sorted y standar. Antes y después de cada LOOP escribiremos en pantalla el inicio y fin para poder hacer la medición.

Declaración:

Declaración tipos tablas sap.
tablas Hashed, Sorted o Standard

Tratamiento:

código de ejemplo tipos tablas de sap.
tablas Hashed, Sorted o Standard

He lanzado el proceso en fondo, ha finalizado con una duración de:

tablas Hashed, Sorted o Standard

El resultado es el siguiente:

tablas Hashed, Sorted o Standard

Adjunto PDF con el código por si queréis realizar alguna prueba.

Espero que os sirva de ayuda este post sobre Tablas Hashed Sorted Standard.


Más contenido sobre sap en:

https://setevalapinsap.com/

Os dejo un vídeo con una muy buena explicación de estas tablas.

Enlace relacionado de interés sobre este tema:

https://answers.sap.com/questions/3408845/standard-sorted-and-hashed-table.html

1+

Un comentario

Añadir un comentario