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