Перестроение индексов системной таблицы
Доступно с лицензией Standard или Advanced.
База данных использует индексы для быстрого нахождения строк, когда фильтр выполняет запрос к базе данных. Большинство системных таблиц базы геоданных имеют индексы, но таблицы, которые, как правило, имеют наибольшее количество изменений в многопользовательской базе геоданных, использующей традиционное управление версиями и поэтому требующей перестроения индексов — это системные таблицы STATES, STATE_LINEAGES и MVTABLES_MODIFIED. Как администратор базы геоданных, вы можете перестроить индексы в этих таблицах баз геоданных, используя инструмент геообработки Перестроить индексы.
В активно редактируемой базе геоданных, использующей традиционное управление версиями, вы можете обновлять индексы таблиц STATES, STATE_LINEAGES и MVTABLES_MODIFIED в ночное время. Для этого создайте автономный скрипт Python, вызывающий инструмент Перестроить индексы, и запланируйте его запуск с использованием Планировщика задач Windows или задания cron.
Использование инструмента Перестроить индексы
Чтобы перестроить индексы системных таблиц базы геоданных STATES, STATE_LINEAGES и MVTABLES_MODIFIED с помощью инструмента Перестроить индексы, выполните следующее:
Запустите ArcGIS Pro и подключитесь к базе геоданных как ее администратор.
Откройте инструмент геообработки Перестроить индексы.
Он находится в группе инструментов Администрирование базы геоданных набора инструментов Управление данными.
Используйте подключение, созданное на шаге 1, в качестве значения параметра Входное подключение к базе данных.
Отметьте параметр Включить системные таблицы.
Снимите отметку с параметра Перестроить только дельта-таблицы.
Щелкните Запустить.
Планировка запуска скрипта Python
Для запуска скрипта необходимо подключиться к базе геоданных с правами доступа администратора базы геоданных. Вы можете либо создать файл подключения (.sde) и указать его в скрипте, либо ввести сведения о подключении непосредственно в скрипте. Далее установите расписание для запуска скрипта с помощью Назначенные задания Microsoft Windows или Linux cron daemon.
Скопируйте один из следующих скриптов на компьютер, где установлены Python и один из следующих продуктов ArcGIS:
ArcGIS Pro (Standard или Advanced)
ArcGIS Server
Измените скрипты, внеся в них информацию о вашем сайте.
В следующем примере пользователь sde подключается к базе данных Db2:
# Name: RSysIdxDb2.py # Description: Rebuilds indexes on the states, state_lineages, # and mv_tables_modified tables in an enterprise geodatabase # in DB2. # Import system modules import sys import arcpy import os # Provide connection information platform = DB2 instance = db2gdb account_authentication = OPERATING_SYSTEM_AUTH | DATABASE_AUTH #Leave username and password blank if using OPERATING_SYSTEM_AUTH username = sde password = gdb_admin_password # Set local variables if os.name.lower() == "nt": slashsyntax = "\\" if os.environ.get("TEMP") == None: temp = "c:\\temp" else: temp = os.environ.get("TEMP") else: slashsyntax = "/" if os.environ.get("TMP") == None: temp = "/usr/tmp" else: temp = os.environ.get("TMP") Connection_File_Name = temp + slashsyntax + "connection.sde" # Check for the .sde file and delete it if present if os.path.exists(Connection_File_Name): os.remove(Connection_File_Name) #Variable defined within the script; other variable options commented out at the end of the line saveUserInfo = "SAVE_USERNAME" #DO_NOT_SAVE_USERNAME print ("Creating Database Connection File...") # Create Database Connection File # Usage: out_folder_path, out_name, database_platform, instance, account_authentication, username, password, save_user_pass arcpy.management.CreateDatabaseConnectionFile(temp, "connection.sde", platform, instance, account_authentication, username, password, saveUserInfo) # Rebuild indexes on system tables arcpy.management.RebuildIndexes(Connection_File_Name, "SYSTEM", "", "ALL") print ("Rebuild Complete")После изменения скрипта, добавив в него сведения о подключении, запланируйте его выполнение в определённое время каждую ночь одним из следующих способов:
В Windows откройте утилиту Назначенные задания из Панели управления и используйте мастер для добавления запланированного задания. Когда появится запрос на указание программы для запуска, укажите созданный вами скрипт Python.
Для установки ArcGIS Server в Linux создайте текстовый файл cron, содержащий сведения о дне и времени запуска скрипта, и загрузите этот файл в cron с помощью программы crontab.
Например, следующая информация задаёт выполнение скрипта Python (с именем
rsysidxdb2.py) каждую среду в 22:00:0 22 * * 3 /usr/bin/rsysidxdb2.pyДля получения сведений по использованию cron, см. справочные страницы Linux, поставляемые вместе с операционной системой.