Советы по повышению производительности

Пользователи ожидают, что инструменты будут работать как можно быстрее, поэтому ваш веб-инструмент и сервис геообработки должны быть эффективными. Так как ArcGIS Server может поддерживать несколько клиентов одновременно, неэффективные сервисы могут перегрузить ваш сервер. Чем эффективнее сервисы, тем больше клиентов будет обслуживаться при использовании тех же вычислительных ресурсов.

Использование слоев для рабочих данных

При запуске инструмента геообработки до его публикации как веб-инструмента, запустите его с использованием слоев в качестве входных данных, а не путей к наборам данных на диске. Слой ссылается на набор данных на диске, а слои кэшируют свойства набора данных. Это в особенности применимо к слоям наборов сетевых данных и растровым слоям. Использование слоя вместо пути к набору данных предпочтительнее в плане производительности, так как при запуске сервиса создается слой из набора данных, кэшируются базовые свойства набора данных, а сам набор данных остается открытым. Когда сервис запускается, свойства набора данных сразу же становятся доступными, а сам набор данных открывается для выполнения действий.

Например, Расширение ArcGIS Network Analyst создают полигоны времени в пути, которые используют слои. В зависимости от размера набора данных это может позволить выиграть от 1 до 2 секунд для каждого выполнения сервиса.

Использование локальных данных в ArcGIS Server

Данные проекции, необходимые веб-инструментам, должны быть локальными для ArcGIS Server. Для доступа к данным с общим доступом, расположенным на сетевом ресурсе (UNC), потребуется больше времени, чем для доступа к данным, размещенным на локальном компьютере. Показатели производительности могут сильно варьироваться, но обычно чтение и запись данных по локальной сети занимают вдвое больше времени, чем на локальном диске.

Запись промежуточных данных в память

Записывайте промежуточные данные в рабочую область memory. Запись данных в память происходит быстрее, чем запись данных на диск.

Примечание:

Выходные данные могут быть записаны в память, если не задана опция просмотра выходных данных в виде слоя изображения карты.

Дополнительные сведения о записи данных в память

Предварительная обработка данных, используемая задачами

Большинство веб-инструментов предназначены преимущественно для ответов на определенные пространственные запросы, осуществляемые веб-клиентами. Так как эти рабочие процессы зачастую являются определенными операциями с известными данными, всегда есть возможность предварительно обработать данные для оптимизации операций. Например, добавление атрибута или пространственного индекса является предварительной обработкой для оптимизации операций выбора атрибутов или пространственных объектов.

Можно рассчитать расстояния от известных местоположений с помощью инструментов Ближайший или Построить таблицу соседних объектов. Предположим, сервис позволяет клиентам выбирать свободные участки на заданном пользователем расстоянии от реки Лос-Анджелес. Можно использовать инструмент Выбрать в слое по расположению для выполнения этого выбора, однако будет гораздо быстрее предварительно рассчитать расстояние до каждого участка от реки Лос-Анджелес (с помощью инструмента Ближайший объект) и сохранить это расстояние в качестве атрибута участка. Этот атрибут можно индексировать с помощью инструмента Добавить атрибутивный индекс. Теперь при запросе клиента задача выполнит выбор атрибута на основе атрибута расстояния, а не будет выполнять менее эффективный пространственный запрос.

Добавление атрибутивных индексов

Если инструмент выбирает данные с помощью запросов атрибутов, создайте атрибутивный индекс для каждого атрибута, используемого в запросах, с помощью инструмента Добавить атрибутивный индекс. Индекс нужно создать только один раз, и это можно сделать вне модели или скрипта.

Добавление пространственных индексов

Если модель или скрипт выполняет пространственные запросы в шейп-файлах, создайте пространственный индекс для шейп-файла с помощью инструмента Добавить пространственный индекс. Для классов объектов базы геоданных, пространственные индексы создаются и поддерживаются автоматически. В некоторых случаях повторный пересчет пространственного индекса может повысить производительность, как описано в разделе Пространственные индексы в базе геоданных.

Используйте синхронный режим вместо асинхронного для инструментов с коротким временем выполнения.

Веб-инструмент может быть настроен на синхронную или асинхронную работу. Когда инструмент запускается асинхронно, на сервер ложится дополнительная нагрузка. Выполнение той же задачи в синхронном режиме всегда быстрее, чем в асинхронном. Однако для длительно выполняемых задач разница становится незначительной, и синхронные сервисы не могут предоставлять статус и сообщения во время работы инструмента, что может привести к ухудшению качества работы.

Отказ от ненужных преобразований координат

Если в веб-инструменте используются наборы данных в других системах координат, инструментам геообработки, которые используются в задаче, может понадобиться преобразовать наборы данных в единую общую систему координат. В зависимости от размера наборов данных, преобразование из одной системы координат в другую может замедлить задачу. Необходимо знать, какая система координат используется в наборах данных и необходимо ли используемым в задаче инструментам преобразовывать эту систему координат.

Уменьшение объемов данных

Любое программное обеспечение, которое обрабатывает данные, работает быстрее, если набор данных небольшой. Существуют следующие способы уменьшения объема географических данных:

  • Удалите ненужные атрибуты из данных проекта с помощью инструмента Удалить поле.
  • Линейные и полигональные объекты имеют вершины, которые определяют их формы. Объекты могут иметь больше вершин, чем нужно, что излишне увеличивает размер набора данных.
    • Данные могут содержать дублирующиеся вершины или вершины, которые так близко расположены друг к другу, что не представляют какой-либо значимости для определения объекта.
    • Количество вершин не соответствует масштабу анализа. Например, объекты содержат детали, которые приемлемы в крупных масштабах, однако в анализе и представлениях используется мелкий масштаб.
    Можно использовать инструменты Упростить линию, Упростить полигон и Генерализовать для удаления ненужных вершин из данных, чтобы настроить соответствующий уровень детализации.