Zusammenfassung
Erneutes Erstellen vorhandener Attribut- oder räumlicher Indizes in Enterprise-Geodatabases. Indizes können auch für die Geodatabase-Systemtabellen "states" und "state_lineage" sowie die Delta-Tabellen von Datasets neu erstellt werden, die registriert werden, um an der traditionellen Versionierung teilzunehmen. Veraltete Indizes können zu einer schlechten Abfrage-Performance führen.
Verwendung
- Daten müssen aus einer Datenbank oder einer Enterprise-Geodatabase stammen. Dieses Werkzeug funktioniert nicht mit File-Geodatabases.
- Nach dem Laden, Löschen, Aktualisieren oder Komprimieren von Daten müssen die Indizes neu erstellt werden.
- Mit diesem Werkzeug werden die Attribut- und räumlichen Indizes von Basistabellen, Delta-Tabellen und Archivtabellen in versionierten und Geodatabases mit aktiviertem Archiv neu erstellt.
- Mit dem Parameter Systemtabellen einbeziehen wird bestimmt, ob die Indizes für die Tabellen "state" und "state_lineages" in der angegebenen Geodatabase neu erstellt werden. Wenn die Option deaktiviert ist, werden die Indizes dieser Tabellen nicht erneut erstellt. Wenn der Parameter Systemtabellen einbeziehen deaktiviert ist, muss mindestens ein Dataset in den Datasets, deren Indizes neu erstellt werden sollen ausgewählt werden, um das Werkzeug auszuführen.
- Die Schaltfläche Wert hinzufügen des Parameters Datasets, deren Indizes neu erstellt werden sollen wird nur in ModelBuilder verwendet. Der Parameter Datasets, deren Indizes neu erstellt werden sollen ist in ModelBuilder nicht mit Werten belegt, wenn das vorherige Werkzeug nicht ausgeführt wurde oder die abgeleiteten Daten nicht vorhanden sind. Mit der Schaltfläche Wert hinzufügen können Sie die erwarteten Werte hinzufügen, damit Sie das Dialogfeld abschließen und mit der Erstellung Ihres Modells fortfahren können.
- Dieses Werkzeug wird für SAP HANA nicht unterstützt.
Syntax
arcpy.management.RebuildIndexes(input_database, include_system, {in_datasets}, {delta_only})
Parameter | Erklärung | Datentyp |
input_database | Die Verbindung (.sde-Datei) mit der Datenbank oder Geodatabase, die die Daten enthält, für die Indizes neu erstellt werden sollen. | Workspace |
include_system | Gibt an, ob Indizes für die Status- und State-Lineages-Tabellen neu erstellt werden. Hinweis:Sie müssen die Verbindung als Geodatabase-Administrator in der für die input_database angegebene Verbindungsdatei herstellen, damit diese Option erfolgreich ausgeführt werden kann. Diese Option gilt nur für Geodatabases. Diese Option wird ignoriert, wenn Sie eine Verbindung mit einer Datenbank herstellen.
| Boolean |
in_datasets [in_datasets,...] (optional) | Namen der Datasets, deren Indizes neu erstellt werden. Dataset-Namen verwenden Pfade relativ zur input_database; vollständige Pfade werden nicht als Eingabe angenommen. | String |
delta_only (optional) | Gibt an, wie die Indizes für die ausgewählten Datasets erneut erstellt werden. Diese Option hat keine Auswirkungen, wenn in_datasets leer ist. Diese Option gilt nur für Geodatabases. Wenn der Eingabe-Workspace eine Datenbank ist, wird diese Option ignoriert.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_workspace | Der aktualisierte Workspace. | Workspace |
Codebeispiel
Das folgende Beispiel veranschaulicht, wie Indizes im Python-Fenster neu erstellt werden.
# Import system modules
import arcpy
arcpy.RebuildIndexes_management("c:/Connections/GDB@DC@server.sde", "NO_SYSTEM","db1.GDB.Roads;db1.GDB.Parcels", "ALL")
Das folgende Beispiel veranschaulicht, wie Indizes in einem eigenständigen Skript neu erstellt werden.
# Name: RebuildIndexes.py
# Description: rebuilds indexes on delta tables for all datasets in an
# enterprise geodatabase
# Import system modules
import arcpy, os
# set workspace
workspace = arcpy.GetParameterAsText(0)
# 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(".%s." % 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')
Umgebungen
Lizenzinformationen
- Basic: Nein
- Standard: Ja
- Advanced: Ja