Operador FILTER – Eficiencia Consumo Memoria

Este operador nos permite hacer un mejor uso en cuanto al tratamiento de las tablas internas de un proceso, obtendremos un mejor consumo de memoria y dotar谩 a nuestro c贸digo de una mayor eficiencia.

Es t铆pico ver en procesos como listado con un gran volumen de datos un SORT a una tabla interna con un elevado n潞 de registros y justo seguido un DELETE por alg煤n criterio.

Ser铆a algo as铆:

SORT i_tab by campo1 campo2 descending.

DELETE i_tab WHERE fechafin NE ‘00000000’. (para quedarnos con vigentes por ejemplo)

Ambas sentencias siendo una tabla interna con 100.000 registros por poner, puede conllevar un alto consumo en memoria e incluso puede llegar a dar DUMP por desbordamiento.

La sentencia FILTER a煤na ambas y es m谩s r谩pida y eficiente en memoria.

Su uso ser铆a:

Declaraci贸n de variables:

TYPES:聽BEGIN聽OF聽t_fechafin ,
fechafin TYPE聽zzeffest,
END聽OF聽t_fechafin ,

tt_fechafin TYPE聽HASHED聽TABLE聽OF聽t_fechafin WITH聽UNIQUE聽KEY聽ffest.

DATA:聽聽li_fechafin TYPE聽tt_fechafin .

USO:

li_fechafin = VALUE tt_fechafin ( ( fechafin = ‘00000000’ ) ).
i_tab2 = FILTER #( i_tab IN li_fechafin WHERE fechafin = fechafin ).

Hemos tenido casos crtit铆cos con el uso de memoria del sistema y con esto hemos podido paliarlos.

Saludos.

A帽adir un comentario

Tu direcci贸n de correo electr贸nico no ser谩 publicada.