Los clientes desean y esperan que las herramientas se ejecuten con la mayor rapidez posible, y por ello sus herramientas web deben ser rápidas y eficientes. Debido a que ArcGIS Server puede alojar varios clientes a la vez, unos servicios ineficientes podrían sobrecargar el servidor. Mientras más eficientes sean los servicios, más clientes se pueden proporcionar con los mismos recursos informáticos.
Las siguientes sugerencias y técnicas aumentarán el rendimiento de los servicios. En general, las técnicas se presentan en orden: las que ofrecen mayores mejoras en el rendimiento se presentan primero. Las últimas sugerencias pueden reducir el tiempo de ejecución unas décimas de segundo, lo que puede ser importante en algunos casos.
Utilice las capas de datos de proyecto
Cuando ejecute una herramienta antes de compartirla como herramienta web, ejecute la herramienta usando las capas como entrada en lugar de rutas de los datasets del disco. Una capa hace referencia a un dataset en disco y las capas almacenan en la caché las propiedades sobre el dataset. Esto es especialmente cierto para las capas de dataset de red y las capas ráster. Al utilizar una capa en lugar de la ruta al dataset, hay una ventaja de rendimiento, debido a que cuando se inicia el servicio, crea la capa desde el dataset, almacena en la caché las propiedades básicas del dataset y mantiene el dataset abierto. Cuando el servicio se ejecuta, las propiedades del dataset están disponibles inmediatamente y el dataset está abierto y disponible para actuar en él, con lo que se obtiene un rendimiento superior.
Por ejemplo, el servicio Cuenca visual del SampleServer de Esri y la Extensión ArcGIS Network Analyst crean polígonos de tiempo de conducción que usan capas. Según el tamaño del dataset, esto puede salvar al alza de 1 a 2 segundos por ejecución del servicio.
Usar datos locales de ArcGIS Server
Los datos de proyecto requeridos por la herramienta web deben ser locales para ArcGIS Server. Los datos que se comparten y a los que se accede mediante una ubicación de red compartida (UNC) son más lentos que si estuvieran disponibles en el mismo equipo. Los números de rendimiento varían mucho, pero por regla general la lectura y escritura de datos través de una LAN lleva el doble de tiempo que en el disco local.
Escribir datos intermedios en la memoria
Escriba los datos intermedios (temporales) en el espacio de trabajo in_memory. Escribir datos en la memoria es más rápido que escribirlos en el disco.
Nota:
También puede escribir los datos de salida en la memoria siempre y cuando no defina la opción para ver las salidas como una capa de imágenes de mapa.
Preprocesar los datos utilizados por las tareas
La mayoría de las herramientas web son flujos de trabajo especializados que proporcionan respuestas a consultas espaciales específicas presentadas por clientes web. Como estos flujos de trabajo suelen ser operaciones específicas o datos conocidos, casi siempre hay una oportunidad para preprocesar los datos y optimizar el funcionamiento. Por ejemplo, agregar un índice espacial o de atributo es un proceso previo simple para optimizar las operaciones de selección espaciales o de atributo. A continuación se muestran otros ejemplos:
- El tutorial Ejemplo de servicio de geoprocesamiento: cuenca hidrográfica preprocesa los datos hidrológicos creando una acumulación de flujo y un ráster de dirección.
- Puede calcular previamente las distancias desde ubicaciones conocidas utilizando las herramientas Cerca o Generar tabla de cercanía. Por ejemplo, supongamos que su servicio le permite a los clientes seleccionar parcelas vacías que estén a una distancia del río Los Ángeles definida por el usuario. Podría utilizar la herramienta Seleccionar capa por ubicación para realizar esta selección, pero sería mucho más rápido calcular previamente la distancia de cada parcela al río Los Ángeles (mediante la herramienta Cerca) y almacenar la distancia calculada como un atributo de las parcelas. Este atributo se indexaría utilizando la herramienta Agregar índice de atributos. Ahora, cuando el cliente emite una consulta, su tarea puede realizar una selección si de atributos simple y rápida en el atributo de distancia en lugar de una consulta espacial mucho menos eficiente.
Agregar índices de atributo
Si la herramienta selecciona los datos usando consultas de atributos, cree un índice de atributos para cada atributo que se utilice en las consultas. Puede utilizar la herramienta Agregar índice de atributos. Solo debe crear el índice una vez y puede hacerlo fuera del modelo o la secuencia de comandos.
Agregar índices espaciales
Si el modelo o el script realiza consultas espaciales en los shapefiles, cree un índice espacial para el shapefile mediante la herramienta Agregar índice espacial. Si está utilizando las clases de entidades de geodatabases, los índices espaciales se crean y se mantienen automáticamente por usted. En algunos casos, recalcular un índice espacial puede mejorar el rendimiento, como se describe Configurar índices espaciales.
Utilizar sincrónico en lugar de asíncrono
Puede configurar la herramienta web de modo que se ejecute de forma síncrona o asíncrona. En el modo asíncrono, el servidor sufre cierta sobrecarga, lo que significa que las herramientas asíncronas rara vez se ejecutan en menos de un segundo. Ejecutar la misma tarea en modo sincrónico es aproximadamente una décima de segundo más rápido que ejecutarla en el modo asíncrono.
Evite las transformaciones de coordenadas innecesarias
Si la herramienta web utiliza datasets que están en distintos sistemas de coordenadas, las herramientas pueden necesitar transformar las coordenadas a un único sistema de coordenadas común durante la ejecución. Según el tamaño de sus datasets, transformar coordenadas de un sistema de coordenadas a otro puede generar una sobrecarga innecesaria. Debe saber cuál es el sistema de coordenadas de los datasets y si las herramientas necesitan realizar transformaciones de coordenadas. Es posible que desee transformar todos los datasets que utiliza su herramienta en un único sistema de coordenadas.
Reducir el tamaño de los datos
Cualquier software que procesa datos funciona más rápido cuando el dataset es pequeño. A continuación se muestran algunas maneras con las que puede reducir el tamaño de los datos geográficos:
- Quite los atributos innecesarios de sus datos de proyecto con la herramienta Eliminar campo.
- Las entidades de línea y poligonales tienen vértices que definen su forma. Cada vértice es una coordenada x,y. Es posible que las entidades tengan más vértices de los que se necesitan, lo que aumenta de manera innecesaria el tamaño del dataset.
- Si los datos provienen de una fuente externa, es posible que contengan vértices duplicados o vértices que se encuentran tan cerca que no contribuyen a la definición de la entidad.
- La cantidad de vértices no se ajusta a la escala de análisis. Por ejemplo, las entidades contienen detalles que son apropiados a grandes escalas, pero el análisis o la presentación es a una escala pequeña.