Пространственные индексы в базе геоданных

ArcGIS Pro применяет пространственные индексы для увеличения производительности выполнения пространственных запросов к классам объектов. Определение пространственного объекта, выбор объектов путем наведения и растягивания окна, а также перемещение и масштабирование – все это обязывает ArcGIS Pro использовать пространственный индекс для поиска объектов.

При создании пустого класса пространственных объектов или импорте данных с целью создания класса объектов в базе геоданных из ArcGIS Pro в классе пространственных объектов создается пространственный индекс. Пространственный индекс используется при запрашивании и редактировании данных.

Примечание:

Исключением является Db2. Когда вы создаете пустые классы объектов в базе геоданных в Db2, пространственные индексы не создаются.

Типы пространственных индексов

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

  • Пространственный индекс, основанный на сетке
    • Файловые базы геоданных
    • Базы геоданных в Db2
    • Базы геоданных в Oracle, если класс объектов содержит поле Esri ST_Geometry
  • Пространственный индекс R-tree
    • Мобильные базы геоданных
    • Базы геоданных в Oracle, которые содержат классы объектов с типом данных Oracle Spatial (SDO_Geometry)
  • Индекс упрощенного дерева поиска (GiST)
    • Базы геоданных в PostgreSQL
  • Модифицированный пространственный индекс B-tree
    • Базы геоданных Microsoft SQL Server, содержащие классы пространственных объектов, которые используют пространственный столбец Geometry или Geography. Пространственный индекс для столбца Geometry хранит также координаты ограничивающего прямоугольника. Обратитесь к документации Microsoft SQL Server для получения информации об ограничивающем прямоугольнике.

Управление пространственным индексом в ArcGIS

Способ создания и перестроения пространственных индексов в ArcGIS Pro зависит от типа базы геоданных, а для многопользовательских баз геоданных - может быть различным, в зависимости от используемой СУБД. В двух следующих разделах описаны различия в функциональных возможностях.

Пространственные индексы в файловых базах геоданных

Ниже описываются пространственные индексы в файловых базах геоданных:

  • При создании класса объектов в ArcGIS Pro создаются пространственные индексы.
  • При копировании вами класса объектов из базы геоданных в файловую базу геоданных пространственный индекс копируется вместе с данными, если исходный класс объектов использует индекс, основанный на сетке (Oracle, Esri ST_Geometry, Db2 или файловая база геоданных). Если же у исходных данных индекс другого типа, в выходной файловой базе геоданных пространственный индекс будет перестроен.
  • Сжатые классы пространственных объектов файловых баз геоданных не используют тот же самый тип пространственного индекса, который используется несжатыми классами пространственных объектов. При сжатии класса пространственных объектов файловой базы геоданных автоматически происходит его переиндексация. Данный индекс не может быть изменен. При отмене сжатия класса пространственных объектов тот пространственный индекс, который был у сжатого ранее класса пространственных объектов, автоматически устанавливается заново.

Пространственные индексы в мобильный базах геоданных

Ниже описываются пространственные индексы в файловых базах геоданных:

  • При создании класса объектов в ArcGIS Pro создаются пространственные индексы.
  • При сохранении изменений объектов в классе без пространственного индекса этот индекс создан не будет.
  • При копировании вами класса объектов из базы геоданных в мобильную базу геоданных ArcGIS Pro создает пространственный индекс класса объектов мобильной базы геоданных на основе скопированных объектов.

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

В следующих списках описывается, как ArcGIS Pro управляет пространственным индексом класса объектов базы геоданных всех поддерживаемых СУБД:

  • Db2
    • При создании класса объектов в ArcGIS Pro не создаются пространственные индексы.
    • При сохранении изменений объектов в классе без пространственного индекса этот индекс будет создан.
    • При копировании вами класса объектов из базы геоданных в базу геоданных Db2 пространственный индекс копируется вместе с данными, если исходный класс объектов использует индекс, основанный на сетке (Oracle, Esri ST_Geometry, Db2 или файловая база геоданных). Если же у исходных данных индекс другого типа, в целевой базе геоданных в Db2 ArcGIS Pro создаст пространственный индекс, основанный на скопированных объектах.
  • Oracle
    • При создании класса объектов в ArcGIS Pro создаются пространственные индексы.
    • При сохранении изменений объектов в классе без пространственного индекса этот индекс будет создан.
    • При копировании вами класса объектов из базы геоданных в базу геоданных Oracle, в случае, если вы используете тип Esri ST_Geometry, пространственный индекс копируется вместе с данными, если исходный класс объектов использует индекс, основанный на сетке (Oracle Esri ST_Geometry, Db2 или файловая база геоданных). Если же у исходных данных индекс другого типа, в целевой базе геоданных в Oracle ArcGIS Pro создаст пространственный индекс, основанный на скопированных объектах.
  • PostgreSQL
    • При создании класса объектов в ArcGIS Pro создаются пространственные индексы.
    • При сохранении изменений объектов в классе без пространственного индекса этот индекс будет создан.
    • При копировании вами класса объектов из базы геоданных в базу геоданных PostgreSQL ArcGIS Pro создает пространственный индекс класса объектов PostgreSQL на основе скопированных объектов.
  • SQL Server
    • При создании класса объектов в ArcGIS Pro создаются пространственные индексы.
    • При сохранении изменений объектов в классе без пространственного индекса этот индекс создан не будет.
    • При копировании вами класса объектов из базы геоданных в базу геоданных SQL Server ArcGIS Pro создает пространственный индекс класса объектов SQL Server на основе скопированных объектов.
  • SAP HANA не применяет пространственные индексы для производительности запросов, поэтому ArcGIS Pro не создает и не поддерживает индексы.

Когда обновляется пространственный индекс?

Для классов объектов SQL Server с пространственным типом Geometry пространственный индекс использует ограничивающий прямоугольник, который нужно обновлять вручную при вставке и удалении объектов. Чтобы определить необходимость пересчета пространственного индекса для класса объектов SQL Server, воспользуйтесь операцией Проверить в диалоговом окне Свойства класса объектов .

Для остальных баз геоданных и пространственных типов вам редко понадобится управлять пространственным индексом. Однако если вы наблюдаете снижение производительности пространственных запросов после добавления или удаления большого количества объектов, вы можете заменить улучшения производительности выполнения пространственного запроса, если перестроите (Oracle) или заново создадите пространственный индекс соответствующего класса объектов.