gvSIG bugs #4946

limitaciones para unir tablas / limitation for table union

Added by Mario Fevre over 5 years ago. Updated about 5 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:Document table
Target version:2.5.0-2913 (rev. org.gvsig.desktop-2.0.241)
Severity:Minor Add-on version:
gvSIG version:2.5.0 Add-on build:
gvSIG build:2855 Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

EN:

Table Union function seem limitated by some performance issue depicted in #4639
This example takes a small vector shapefile (688 simple polygons) and a small-medium size table (about 9.000 records and 12 fields)
Both have a link field, text type 8characters long.
Union process works fine itself, but once is done, and new temp layer is added to the view, its refresh takes about 2 minutes.
Even worse exporting resulting temp layer takes about 8 minutes.
And at some point (zoomin in and out, turning on and of layers) resources seem to run out and everything frezzes.
Once (i could not reproduce it), gvSIG alerted error saving storage.
table, shapefile and log atached

ES:

La función de unión de tablas se ve limitada por algún problema de rendimiento ya mencionado en #4639
Este ejemplo una una capa vectorial relativamente pequeña (688 polígonos simples) y una tabla de tamaño pequeño-medio (unos 9.000 registros y 12 campos)
Ambas cuentan con un campo de unión de tipo texto de 8 caracteres.
El proceso de unión funciona bien en si mismo, pero cuando termina y la nueva capa temporal se añade a la vista, su regeneración toma aproximadamente 2 minutos
Y aun peor exportar la capa resultante toma unos 8 minutos
Y en algún momento (al hacer zoom-in, zoomout, poniendo capas visibles y no visibles) los recursos parecen terminarse todo se congela, aunque no saltan errores en la consola.
tabla, shapefile y log adjuntos

pobnbi.zip (183 KB) Mario Fevre, 10/26/2018 03:45 PM

radios en zona.zip (147 KB) Mario Fevre, 10/26/2018 03:45 PM

gvSIG.log (432 KB) Mario Fevre, 10/26/2018 03:47 PM


Related issues

Related to Application: gvSIG desktop - gvSIG feature requests #4521: Uso de indices espaciales para datos vectoriales New 06/28/2017

Associated revisions

Revision 44158
Added by Joaquín del Cerro Murciano about 5 years ago

refs #4946. añadido soporte para indices en memoria para campos de tipo string, int, long, float y double.

Revision 44159
Added by Joaquín del Cerro Murciano about 5 years ago

refs #4946. Modificado para que al finalizar la creacion del join, si no exite, cree el indice adecuado en la tabla de lookup. De momento parece la opcion menos mala hasta que creemos un dialogo de administracion de indices.

Revision 44165
Added by Joaquín del Cerro Murciano about 5 years ago

refs #4946, #4837 . Correcciones para acceder a los metadatos de la capa correctamente cuando se anidan varias transformaciones, por ejemplo un capa de eventos y luego un join, y se quiere acceder a la proyeccion.

Revision 44166
Added by Joaquín del Cerro Murciano about 5 years ago

refs #4946, #4837 . Correcciones para acceder a los metadatos de la capa correctamente cuando se anidan varias transformaciones, por ejemplo un capa de eventos y luego un join, y se quiere acceder a la proyeccion.

History

#1 Updated by Álvaro Anguix about 5 years ago

  • Category set to Document table

#2 Updated by Joaquín del Cerro Murciano about 5 years ago

  • Target version set to 2.5.0-2930-final

#3 Updated by Joaquín del Cerro Murciano about 5 years ago

  • Target version changed from 2.5.0-2930-final to 2.5.0-2913 (rev. org.gvsig.desktop-2.0.241)

#4 Updated by Joaquín del Cerro Murciano about 5 years ago

  • Assignee set to Joaquín del Cerro Murciano
  • Status changed from New to Fixed

La lentitud se debe a que por cada registro en la capa 'radios en zona', se recorre la tabla 'pobnbi' para localizar el registro que toca y poder traerse los datos.
Para que funcione adecuadamente, deberiamos tener un soporte correcto de indices. De momento e dado soporte para indices en memoria para campos de tipo string, int, long, float y double y cuando se crea el join, si no tiene un indice en la tabla por el campo de la union, crea uno en memoria. No da opcion, lo crea y punto. Para las tablas de prueba adjuntadas, el indice apenas tarda unos segundos en crearse y luego el rendimiento es practicamente instantaneo.
Si la tabla es muy grande puede llevar un tiempo la creacion del indice, pero luego el funcionamiento es instantaneo.He probado con una tabla de 2.000.000 de registros y en mi equipo tarda casi minuto y medio en crear el indice, y luego ya es fluido el manejo de la tabla/capa.

Ahora mismo el principal problema sera que el indice se crea en memoria, con lo que no persiste entre sesiones de gvSIG. Tomo nota y para la proxima version de gvSIG intentare dar soporte a indices en disco, persistentes entre sesiones, asi como para crear un dialogo de administracion de indices.

#5 Updated by Mario Fevre about 5 years ago

Como simple usuario, parece que a pesar de las limitacidnes descriptas, el ajuste representa una mejora enorme. Gran trabajo!

#6 Updated by Álvaro Anguix about 5 years ago

  • Status changed from Fixed to Closed

#7 Updated by Álvaro Anguix about 5 years ago

Also available in: Atom PDF