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.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Datenbankverbindung

Die Verbindung (.sde-Datei) mit der Datenbank oder Geodatabase, die die Daten enthält, für die Indizes neu erstellt werden sollen.

Workspace
Systemtabellen einbeziehen

Gibt an, ob Indizes für die Status- und State-Lineages-Tabellen neu erstellt werden.

Sie müssen die Verbindung als Geodatabase-Administrator herstellen, um diese Option aktivieren zu können.

Diese Option gilt nur für Geodatabases. Wenn Sie eine Verbindung mit einer Datenbank herstellen, ist diese Option deaktiviert.

  • Deaktiviert: Indizes werden für die Status- und State-Lineages-Tabelle nicht neu erstellt. Dies ist die Standardeinstellung.
  • Aktiviert: Indizes werden für die Status- und State-Lineages-Tabellen neu erstellt.
Boolean
Datasets, für die die Indizes neu erstellt werden sollen
(optional)

Namen der Datasets, deren Indizes neu erstellt werden. Es werden nur Datasets angezeigt, deren Besitzer der verbundene Benutzer ist.

String
Nur Delta-Tabellen neu erstellen
(optional)

Gibt an, ob Indizes nur für die Delta-Tabellen der ausgewählten Datasets neu erstellt werden. Diese Option ist nicht verfügbar, wenn in der Liste der Eingabe-Datasets keine Datasets ausgewählt wurden.

Diese Option gilt nur für Geodatabases. Wenn Sie eine Verbindung mit einer Datenbank herstellen, ist diese Option deaktiviert.

  • Aktiviert: Indizes 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.
  • Deaktiviert: Indizes 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.
Boolean

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierter Workspace

Der aktualisierte Workspace.

Workspace

arcpy.management.RebuildIndexes(input_database, include_system, {in_datasets}, {delta_only})
NameErläuterungDatentyp
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

NameErläuterungDatentyp
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