Indizes neu erstellen (Data Management)

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})
ParameterErklärungDatentyp
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.

  • NO_SYSTEM Indizes werden für die Status- und State-Lineages-Tabelle nicht neu erstellt. Dies ist die Standardeinstellung.
  • SYSTEM Indizes werden für die Status- und State-Lineages-Tabellen neu erstellt.
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.

  • ALLIndizes werden für alle ausgewählten Datasets neu erstellt. Dies schließt räumliche Indizes sowie vom Benutzer erstellte Attributindizes und alle sonstigen in Geodatabases gepflegten Indizes für das Dataset ein.
  • ONLY_DELTASIndizes werden nur für die Delta-Tabellen der ausgewählten Datasets neu erstellt. Diese Option kann für Fälle verwendet werden, in denen die Business-Tabellen für die ausgewählten Datasets nicht oft aktualisiert werden und ein hohes Bearbeitungsvolumen in den Deltatabellen vorliegt. Dies ist die Standardeinstellung.
Boolean

Abgeleitete Ausgabe

NameErklärungDatentyp
out_workspace

Der aktualisierte Workspace.

Workspace

Codebeispiel

RebuildIndexes: Beispiel 1 (Python-Fenster)

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")
RebuildIndexes: Beispiel 2 (eigenständiges Skript)

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')

Lizenzinformationen

  • Basic: Nein
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen