Mit der Standard- oder Advanced-Lizenz verfügbar.
Die Datenbank verwendet Indizes, um Zeilen schnell zu identifizieren, wenn ein Client die Datenbank abfragt. Die meisten Geodatabase-Systemtabellen haben Indizes. Die Tabellen, die tendenziell die größte Menge an Änderungen in einer Enterprise-Geodatabase mit traditioneller Versionierung aufweisen und daher die häufigste Neuerstellung der Indizes erfordern, sind jedoch die Systemtabellen SDE_states, SDE_state_lineages und SDE_mvtables_modified. Als Geodatabase-Administrator können Sie mit dem Geoverarbeitungswerkzeug Indizes neu erstellen die Indizes dieser Tabellen in Enterprise-Geodatabases neu erstellen.
In einer stark bearbeiteten Geodatabase mit traditioneller Versionierung können Sie jede Nacht die Indizes in den Tabellen SDE_states, SDE_state_lineages und SDE_mvtables_modified aktualisieren. Hierzu erstellen Sie ein eigenständiges Python-Skript, das das Werkzeug Indizes neu erstellen aufruft und es so plant, dass es mit der Microsoft Windows-Aufgabenplanung oder einem Cron-Job ausgeführt wird.
Verwenden des Werkzeugs Indizes neu erstellen
Führen Sie die folgenden Schritte aus, um Indizes in den Geodatabase-Systemtabellen SDE_states, SDE_state_lineages und SDE_mvtables_modified mit dem Werkzeug Indizes neu erstellen neu zu erstellen:
- Starten Sie ArcGIS Pro, und stellen Sie als Geodatabase-Administrator eine Verbindung mit der Geodatabase her.
- Öffnen Sie das Geoverarbeitungswerkzeug Indizes neu erstellen.
Dieses Werkzeug befindet sich im Toolset "Geodatabase-Verwaltung" der Toolbox "Data Management".
- Verwenden Sie als Parameterwert Eingabe-Datenbankverbindung die Verbindung, die Sie in Schritt 1 erstellt haben.
- Aktivieren Sie den Parameter Systemtabellen einbeziehen.
- Deaktivieren Sie den Parameter Nur Delta-Tabellen neu erstellen.
- Klicken Sie auf Ausführen.
Planen eines Python-Skripts
Zur Ausführung des Skripts müssen Sie eine Verbindung zur Geodatabase als Geodatabase-Administrator herstellen können. Sie können entweder eine Verbindungsdatei (.sde) erstellen und diese im Skript angeben oder die Verbindungsinformationen direkt in das Skript eingeben. Planen Sie danach das Skript so, dass es mit der Microsoft Windows-Aufgabenplanung oder dem Linux-cron-Daemon ausgeführt wird.
- Kopieren Sie eines der folgenden Skripte auf einen Computer, auf dem Python und eines der folgenden ArcGIS-Produkte installiert sind:
- ArcGIS Pro (Standard oder Advanced)
- ArcGIS Server
Ändern Sie die Skripte, um Ihre Site-spezifischen Informationen einzuschließen.
Dieses Beispielskript enthält die Informationen für die Verwendung eines vom Betriebssystem authentifizierten DBO-Benutzers, um eine Verbindung mit SQL Server herzustellen und die Indizes in den Systemtabellen SDE_states, SDE_state_lineages und SDE_mvtables_modified zu aktualisieren:
# Name: RSysIdxSqlServer.py # Description: Rebuilds indexes on the sde_states, sde_state_lineages, # and sde_mv_tables_modified tables in an enterprise geodatabase # in SQL Server. # Import system modules import sys import arcpy import os # Provide connection information platform = SQL_SERVER instance = sqlserver_instance_name account_authentication = OPERATING_SYSTEM_AUTH database = database_name # 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) print ("Creating Database Connection File...") # Create Database Connection File # Usage: out_folder_path, out_name, database_platform, instance, account_authentication, database arcpy.CreateDatabaseConnectionFile_management(temp, "connection.sde", platform, instance, account_authentication, database) # Rebuild indexes on system tables arcpy.RebuildIndexes_management(Connection_File_Name, "SYSTEM", "", "ALL") print ("Rebuild Complete") - Nachdem Sie das Skript geändert haben, um die Verbindungsinformationen einzuschließen, planen Sie das Skript so, dass es jede Nacht zu einem bestimmten Zeitpunkt ausgeführt wird, indem Sie einen der folgenden Schritte ausführen:
- Öffnen Sie in Windows die Aufgabenplanung in der Systemsteuerung, und verwenden Sie den Assistenten, um eine geplante Aufgabe hinzuzufügen. Wenn Sie zur Ausführung des Programms aufgefordert werden, navigieren Sie zu dem von Ihnen erstellten Python-Skript.
- Erstellen Sie für eine ArcGIS Server-Installation unter Linux eine cron-Textdatei, die Informationen zu Tag und Uhrzeit der Skriptausführung enthält, und laden Sie die Datei mit dem crontab-Programm in cron.
Mit den folgenden Informationen wird z. B. das Python-Skript (rsysidxdb2.py) so festgelegt, dass es jeden Mittwoch um 22:00 Uhr ausgeführt wird:
0 22 * * 3 /usr/bin/rsysidxdb2.py
Informationen zur Verwendung von cron finden Sie in den Linux-Manpages zu Ihrer Linux-Installation.