PDA

Ver la Versión Completa : Hashed tables.


vanesamacri
12/07/13, 01:04:54
Hola. Buenas noches. Antes de que se vayan a dormir, vengo a plantearles un interrogante.

Mi consulta es la siguiente: ¿es necesario ordenar una tabla interna que ha sido declarada del tipo hashed? ¿Impacta de alguna manera en sus posteriores accesos?

Entiendo que las mismas no se manejan por índice y que las búsquedas se hacen mediante un algoritmo mágico. Sin embargo, me llamó poderosamente la atención que SAP me dejara activar un código en el cual había utilizado la sentencia SORT en una tabla de este tipo (pensé que me iba a ladrar al intentarlo).

Estuve buscando por internet, pero no encontré nada lo suficientemente creíble como para ayudarme a formar un veredicto.

Si alguien me puede despejar de esta duda existencial, se lo agradeceré eternamente (bueh... no sé si taaanto).

Saludos.

ballan
12/07/13, 09:25:42
No se si lo que voy a exponer es del todo correcto, solo lo digo basandome en mi experiencia y aplicando un poco el sentido comun

La sentencia SORT solo dara dump si la utilizas con una tabla SORTED, creo que es algo bastante logico, estas tablas ya implementan su propio algoritmo de ordenacion

Respecto a las tablas HASH lo primero destacar una cosa

Las tablas HASH por su propia naturaleza son tablas internas que tienen que ser creadas con una clave, por lo tanto lo logico es que si creamos una tabla HASH accedamos a ella por la clave o una parte de esa clave

Por lo tanto en principio no tendria mucho sentido ordenar la tabla por campos que no sean de la clave para luego hacer una busqueda, aunque en este caso hipotetico de buscar en una tabla hash por campos que no son claves probablemente el sort si que beneficiaria el rendimiento (otra cosa es que en el read table te deje añadir el binary search, cosa que desconozco pero que me temo que no te va a dejar)

Lo que pasa es que el sort no se utiliza solo para hacer los read, por ejemplo podriamos utilizarlo para ordenar y luego hacer un delete adjacent duplicates comparing... o para ordenar respecto a una clave y luego hacer un loop endloop con at new, at end o cosas parecidas

En resumen, el sort NO beneficia el acceso a tablas hash a no ser que sea accediendo por campos que no sean claves, pero el sort SI puede sernos util utilizarlo en una tabla hash para determinadas cosas que no necesariamente tienen que ser lecturas

Bueno, no se si aclare algo o lo lie mas, jeje

vanesamacri
12/07/13, 14:46:08
Tu respuesta me ayudó. Muchas gracias.