Los usuarios esperan que las herramientas funcionen lo más rápido posible, por lo que la herramienta web debe ser eficiente. 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. Los últimos consejos pueden mejorar el tiempo de ejecución en unas décimas de segundo, lo que puede ser importante en algunos escenarios.
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 conjunto de datos en disco, y las capas almacenan en caché las entidades del dataset. Esto es especialmente cierto para las capas de dataset de red y las capas ráster. El uso de una capa en lugar de la ruta al dataset supone una ventaja de rendimiento, ya que cuando se inicia el servicio, este crea la capa a partir del dataset, almacena en caché las propiedades básicas del dataset y lo mantiene abierto. Cuando el servicio se ejecuta, las propiedades del dataset están disponibles de inmediato, y el dataset está abierto y disponible para actuar sobre él.
Por ejemplo, el servicio Cuenca visual del SampleServer de Esri y la Extensión ArcGIS Network Analyst crea 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.
Sugerencia:
Vea un ejemplo del uso de las capas en las herramientas de secuencia de comandos de Python.
Usar datos locales de ArcGIS Server
Los datos del proyecto requeridos por la herramienta web deben ser locales a 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 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 para optimizar las operaciones de selección espaciales o de atributo.
- Puede calcular previamente las distancias desde ubicaciones conocidas utilizando las herramientas Cerca o Generar tabla de cercanía. Por ejemplo, supongamos que el 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, la tarea puede realizar una selección si de atributos en el atributo de distancia en lugar de una consulta espacial mucho menos eficiente.
Agregar índices de atributo
Si la herramienta selecciona datos mediante consultas de atributos, cree un índice de atributos para cada atributo utilizado en las consultas mediante 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 la secuencia de comandos 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. En algunos casos, recalcular un índice espacial puede mejorar el rendimiento, como se describe Configurar índices espaciales en la geodatabase.
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.
Evitar 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 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.