Перестроить индексы (Управление данными)

Краткая информация

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

Использование

  • Данные должны поступать из базы данных или из многопользовательской базы геоданных. Этот инструмент не работает файловыми базами геоданных.
  • После операций загрузки, удаления, обновления и сжатия данных важно перестроить индексы.
  • Этот инструмент перестраивает атрибутивные и пространственные индексы базовых таблиц, дельта-таблиц и таблиц архивов в версионных базах геоданных и базах геоданных с возможностью архивирования.
  • Параметр Включить системные таблицы определяет, будут ли перестроены индексы таблиц состояний и связей состояний в указанной базе геоданных. Когда эта опция не отмечена, индексы этих таблиц не перестраиваются. Если параметр Включить системные таблицы не отмечен, для запуска инструмента необходимо выбрать хотя бы один набор данных в параметре Наборы данных для перестроения индексов.
  • Кнопка Добавить значение в параметре Наборы данных для перестроения индексов используется только в ModelBuilder. В ModelBuilder, если предыдущий инструмент не был запущен или не существует его производных данных, параметр Наборы данных для перестроения индексов может быть не заполнен значениями. Кнопка Добавить значение позволяет добавлять нужные значения, так что вы можете закрыть диалоговое окно и продолжить построение модели.
  • Этот инструмент не поддерживается в SAP HANA.

Параметры

ПодписьОписаниеТип данных
Входное подключение к базе данных

Подключение (файл .sde) к базе данных или базе геоданных, содержащей данные, для которых требуется перестройка индексов.

Workspace
Включить системные таблицы

Показывает, будут ли перестроены индексы состояний и таблиц связей состояний.

Для активации этой опции необходимо подключиться как администратор базы геоданных.

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

  • Не отмечено: индексы состояний и таблиц связей состояний не будут перестроены. Это значение по умолчанию
  • Отмечено: индексы состояний и таблиц связей состояний будут перестроены.
Boolean
Наборы данных для перестройки индексов
(Дополнительный)

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

String
Перестроить только таблицы различий
(Дополнительный)

Определяет, будут ли перестроены индексы только для дельта-таблиц выбранных наборов данных. Данная опция будет недоступна, если в списке входных наборов данных нет выбранных наборов данных.

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

  • Отмечено: индексы будут перестроены только для дельта-таблиц выбранных наборов данных. Эта опция может использоваться для случаев, когда бизнес-таблицы для выбранных наборов данных обновляются не часто, а в дельта-таблицах выполняется большое количество правок. Это значение по умолчанию
  • Не отмечено: индексы будут перестроены на всех индексах для выбранных наборов данных. Сюда относятся пространственные индексы, созданные пользователем индексы атрибутов, а также любые индексы для наборов данных, поддерживаемые через базу геоданных.
Boolean

Производные выходные данные

ПодписьОписаниеТип данных
Обновленная рабочая область

Обновленная рабочая область.

Рабочее пространство

arcpy.management.RebuildIndexes(input_database, include_system, {in_datasets}, {delta_only})
ИмяОписаниеТип данных
input_database

Подключение (файл .sde) к базе данных или базе геоданных, содержащей данные, для которых требуется перестройка индексов.

Workspace
include_system

Показывает, будут ли перестроены индексы состояний и таблиц связей состояний.

Примечание:

Для успешного выполнения этой опции необходимо указать в файле подключения, заданного для input_database, учетную запись администратора базы геоданных.

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

  • NO_SYSTEM Индексы состояний и таблиц связей состояний не будут перестроены. Это значение по умолчанию
  • SYSTEM Индексы состояний и таблиц связей состояний будут перестроены.
Boolean
in_datasets
[in_datasets,...]
(Дополнительный)

Имена наборов данных, индексы которых будут перестроены. Имена наборов данных используют пути относительно input_database; полные пути не допускаются в качестве входных данных.

String
delta_only
(Дополнительный)

Показывает, как будут перестроены индексы в выбранных наборах данных. Эта опция не оказывает влияния, если in_datasets пустой.

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

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

Производные выходные данные

ИмяОписаниеТип данных
out_workspace

Обновленная рабочая область.

Рабочее пространство

Пример кода

RebuildIndexes, пример 1 (окно Python)

Следующий пример демонстрирует, как перестроить индексы, используя окно Python.

# Import system modules
import arcpy

arcpy.RebuildIndexes_management("c:/Connections/GDB@DC@server.sde", "NO_SYSTEM","db1.GDB.Roads;db1.GDB.Parcels", "ALL")
RebuildIndexes, пример 2 (автономный скрипт)

Следующий пример демонстрирует, как перестроить индексы, используя автономный скрипт.

# Name: RebuildIndexes.py
# Description: rebuilds indexes on delta tables for all datasets in an
# enterprise geodatabase that belong to the connected user

# Import system modules
import arcpy, os

# set workspace
workspace = "C:/MyProject/mySDEConnection.sde"

# set the workspace environment
arcpy.env.workspace = workspace

# NOTE: Rebuild indexes can accept a Python list of datasets.

# Get a list of all the datasets the user has access to.
# First, get all the stand alone tables, feature classes and rasters.
dataList = arcpy.ListTables() + arcpy.ListFeatureClasses() + arcpy.ListRasters()

# Next, for feature datasets get all of the datasets and featureclasses
# from the list and add them to the master list.
for dataset in arcpy.ListDatasets("", "Feature"):
    arcpy.env.workspace = os.path.join(workspace,dataset)
    dataList += arcpy.ListFeatureClasses() + arcpy.ListDatasets()

# reset the workspace
arcpy.env.workspace = workspace

# Get the user name for the workspace
userName = arcpy.Describe(workspace).connectionProperties.user.lower()

# remove any datasets that are not owned by the connected user.
userDataList = [ds for ds in dataList if ds.lower().find(f".{userName}.") > -1]

# Execute rebuild indexes
# Note: to use the "SYSTEM" option the workspace user must be an administrator.
arcpy.RebuildIndexes_management(workspace, "NO_SYSTEM", userDataList, "ALL")
print('Rebuild Complete')

Информация о лицензиях

  • Basic: Нет
  • Standard: Да
  • Advanced: Да

Связанные разделы