Conocimiento de sus datos

Cuando crea una solución de punto en polígono, es importante comprender cómo sus datos afectarán el rendimiento y las opciones de la operación de Spectrum que utilizará y algunos de los factores limitantes de los datos.

¿Dónde están sus datos? Es importante saber dónde se ubican sus datos y qué tipo de datos tendrá en su solución. Por ejemplo, tener archivos TAB en el sistema de archivos, en comparación con tener los datos en DBMS, cambiará el rendimiento de su operación. Spectrum transfiere el procesamiento de ciertas operaciones (combinaciones espaciales) a la base de datos (por ejemplo, Oracle y SQL Server), lo que mejorará el rendimiento. Por ejemplo, operaciones similares a la siguiente:

Select a.id, b.id from flood_plane a, customers b where MI_Contains(a.geom, b.geom)

¿Qué es formato de geometría? Existe una diferencia en el rendimiento cuando se utiliza un formato de geometría nativo MapInfo en comparación con un archivo con formato x/y (por ejemplo, archivo CSV con valores lat/long). Para mejorar el rendimiento, considere utilizar un formato x/y en lugar de un formato de geometría nativo MapInfo.

¿Sus datos son estáticos o cambiantes? Si sabe que sus datos no cambian (todos o algunos de ellos), y está utilizando la operación Query Spatial Data, existe una opción de configuración cuando crea sus recursos con nombre asignado que podría mejorar considerablemente el rendimiento. En Spectrum, esto se conoce como volatilidad. Por defecto, todos los recursos tienen configurada la volatilidad en "true", lo que significa que Spectrum supone que los datos pueden cambiar en cualquier momento y debe revisarlos cada vez que se accede a ellos para determinar si cambiaron y decidir si es necesario cargar nuevos datos.

¿Cómo afecta la volatilidad a las operaciones de punto en polígono? Si la volatilidad no se configura en "true", e incluso si el origen de datos no ha cambiado, el solo hecho de revisar el recurso disminuirá el rendimiento. Si sabe que los datos no cambiarán y el rendimiento es necesario, desactive la volatilidad. Si hay un problema de rendimiento y sabe que algunos de los datos cambiarán (como las listas de clientes o los puntos de prospección), pero algunos de sus datos no cambiarán (parcelas, tierras o áreas de venta), asegúrese de que la volatilidad no esté activada en la mayor parte de sus datos estáticos que sea posible. Esto aumentará el rendimiento. Para obtener más información sobre la volatilidad y cómo cambiar esta configuración en el caso de los recursos, consulte Volatilidad de la fuente de datos.

¿Está utilizando archivos TAB? Cuando utiliza los archivos TABA, tiene la capacidad para mantener un grupo de controles para la apertura de archivos para evitar tener que abrir y volver a abrir los archivos cada vez que se leen. Spectrum Spatial utilizará el grupo de controles de archivo para los archivos TAB nativos cuya configuración de volatilidad sea falsa. Los archivos TAB nativos incluyen los archivos TAB nativos extendidos y TAB nativo integrados. De forma predeterminada, todas las tablas en el repositorio Spectrum Spatial se consideran volátiles (verdadero). La volatilidad para los archivos TAB nativos significa que el esquema puede cambiar en cualquier momento. Para aprovechar esta mejora de rendimiento, ajuste la configuración de volatilidad en falso en Spatial Manager. En general, se recomienda la configuración de volatilidad en falso solo si los datos van a cambiar en períodos de tiempo conocidos o no van a cambiar en lo absoluto.

El grupo de controles de archivo está activado de manera predeterminada. Para desactivarlo, vaya a \server\modules\spatial\pool-tab.properties y defina tab.cache.enabled en falso Debe reiniciar el servidor para que tenga efecto la configuración.

La configuración del grupo de controles de archivo se realiza mediante el archivo tab-file-handle-pool.properties, que también se encuentra en la carpeta \server\modules\spatial. Entre las propiedades están el número máximo de controles que se pueden asignar al grupo (maxTotal), el número máximo de controles asignados por archivo (maxTotalPerKey) y la duración mínima de tiempo en que un control de archivo puede estar en el grupo sin utilizar antes de que se cierre (minEvictableIdleTimeMillis).

Para las tablas integradas, existe un fórmula general para maximizar el rendimiento del grupo de controles de archivo. Específicamente, tiene que calcular la cantidad máxima de controles que pueden asignarse al grupo (maxTotal). Utilice los siguientes pasos para calcular la maxTotal:

  1. Busque la tabla integrada con la mayor cantidad de subtablas, y tenga en cuenta la cantidad de subtablas (n.° de subtablas).
  2. Determine la cantidad de subprocesos que utiliza (n.° de subprocesos).
  3. La fórmula es (3 + (3 x n.° de subtablas)) x n.° de subprocesos = maxTotal. Si las tablas integradas no tienen archivos .ind, la fórmula es (2 + (2 x n.° de subtablas)) x n.° de subprocesos= maxTotal.

Por ejemplo, si utiliza toda la tabla integrada de EE. UU., existen archivos .ind, hay 54 subtablas y usted utiliza 8 subprocesos. El cálculo para maxTotal es (3 + (3 x 54)) x 8 = 1320.

Nota: Existe un problema potencial, según el SO que utilice, puede quedarse sin controles de archivos abiertos.
Nota: El valor de maxTotalPerKey debe ser superior a la cantidad de subprocesos que utiliza, si usa más de 10.