Настройка пространственных индексов. Краткий обзор
Пространственный индекс используется для быстрого нахождения пространственных объектов при отображении, редактировании или запросе данных. Поэтому пространственный индекс имеет важное значение, особенно при работе с большими объемами данных.
Пространственные индексы работают по-разному в зависимости от типа источника данных. В персональных, файловых и многопользовательских базах геоданных в DB2, многопользовательских базах геоданных в Oracle и SQL Server с бинарным типом хранением геометрии и многопользовательских базах геоданных в Oraclе с типом хранения ST_Geometry используется пространственный индекс на основе грида. Oracle Spatial, Informix и PostgreSQL не используют размеры сетки – они используют индекс R-дерева. Индекс пространственного грида Esri не используется также в классах объектов с пространственными типами SQL Server.
Поддержка пространственных индексов в ArcGIS
ArcGIS автоматически перестраивает пространственный индекс в конце некоторых операций в файловых, многопользовательских, групповых и настольных базах геоданных для его оптимизации. Ниже приводится описание того, как ArcGIS управляет пространственным индексом:
- При создании с помощью мастера Создать новый класс пространственных объектов (New Feature Class) пустого класса пространственных объектов, для файловых, групповых, настольных и всех многопользовательских баз геоданных (за исключением тех, что находятся в базах данных DB2) создается пространственный индекс. Этот пространственный индекс будет использоваться при редактировании и при работе с командами Загрузить данные (Load Data). В многопользовательских базах геоданных в DB2 пространственный индекс создается после загрузки данных в пустой класс пространственных объектов.
- При импорте данных из персональной базы геоданных, шейп-файла или покрытия, а также данных САПР и данных Smart Data Compression (SDC) в файловую, многопользовательскую, групповую или настольную базу геоданных, для нового класса пространственных объектов автоматически создается пространственный индекс.
- При копировании класса пространственных объектов из персональной базы геоданных в файловую, многопользовательскую, групповую или настольную базу геоданных с помощью команд ArcCatalog Копировать (Copy) и Вставить (Paste), пространственный индекс автоматически перестраивается. Пространственный индекс также перестраивается, если вы копируете класс пространственных объектов из Oracle Spatial, PostgreSQL или Informix. Если вы копируете класс пространственных объектов из файловой или многопользовательской базы геоданных, в которой используется индекс на основе грида (Oracle binary и ST_Geometry, SQL Server binary или DB2), в другую базу геоданных с индексом на основе грида, индекс копируется вместе с данными и не пересчитывается.
- При создании класса пространственных объектов с помощью инструмента геообработки выполняется анализ объектов в новом классе и автоматическое вычисление нового пространственного индекса.
- При сохранении изменений или загрузке данных в класс объектов, не имеющий пространственного индекса, он вычисляется в конце операции Сохранить изменения (Save Edit) или Загрузить данные (Load Data).
- Сжатые классы пространственных объектов файловых баз геоданных не используют тот же самый тип пространственного индекса, который используется несжатыми классами пространственных объектов. При сжатии класса пространственных объектов в файловой базе геоданных его индекс автоматически пересчитывается. Данный индекс не может быть изменен. При отмене сжатия класса пространственных объектов тот пространственный индекс, который был у сжатого ранее класса пространственных объектов, автоматически устанавливается заново.
В каких случаях нужно обновлять пространственный индекс
Поскольку ArcGIS поддерживает пространственный индекс в файловых, многопользовательских, групповых и настольных базах геоданных, вам редко понадобится пересчитывать пространственный индекс вручную. Пересчет пространственного индекса рекомендуется только в следующей особой ситуации:
- Пересчитайте вручную пространственный индекс, если вы добавили в класс пространственных объектов большое количество объектов, отличающихся по размеру от уже имеющихся в нем. Это относится только к добавлению объектов в сессиях редактирования. Например, вы могли начать сессию редактирования и добавить большое количество линейных объектов вручную или с помощью Загрузчика объектов (Object Loader). Многие из добавленных вами объектов будут либо значительно длиннее, либо значительно короче, чем объекты, которые уже есть в классе пространственных объектов. Для обеспечения оптимальной работы пространственного индекса при добавлении новых объектов вы должны обновить его.
Пространственные индексы в персональных базах геоданных
При создании класса пространственных объектов в персональной базе геоданных, используя мастер Новый класс (New Feature Class) пространственных объектов, инструмент геообработки или любой другой способ, ArcGIS вычислит пространственный индекс, изменить который нельзя. Пространственный индекс основан на охвате системы координат класса пространственных объектов и всегда будет оптимальным.