Datasets analysieren (Data Management)

Zusammenfassung

Aktualisiert Datenbankstatistiken zu Basistabellen, Delta-Tabellen und Archivtabellen zusammen mit den Statistiken für die Indizes dieser Tabellen. Dieses Werkzeug wird in Enterprise-Geodatabases verwendet, um die Performance des RDBMS Query Optimizer zu optimieren. Veraltete Statistik kann zu schlechter Geodatabase-Performance führen.

Verwendung

  • Der Eingabe-Workspace muss eine Enterprise-Datenbank sein. Datasets analysieren funktioniert nicht mit File- oder Personal-Geodatabases.

  • Nachdem Sie Daten geladen, gelöscht, aktualisiert oder komprimiert haben, müssen Sie die RDBMS-Statistiken in Oracle-, SQL Server-, Db2- und PostgreSQL-Datenbanken aktualisieren.

  • Die Option Systemtabellen einbeziehen wird verwendet, um zu bestimmen, ob die Status- und State-Lineage-Tabellen analysiert werden. Wenn die Option deaktiviert ist, werden diese Tabellen nicht analysiert; wenn sie aktiviert ist, werden die Tabellen analysiert.

  • Bei der Arbeit mit Tabellen oder Datasets werden mit diesem Werkzeug die Statistiken von Basistabellen, Delta-Tabellen und Archivtabellen zusammen mit den Statistiken für die Indizes dieser Tabellen aktualisiert.

  • Die Schaltfläche Wert hinzufügen des Parameters Zu analysierende Datasets wird nur in ModelBuilder verwendet. Der Parameter Zu analysierende Datasets 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 mit der Erstellung Ihres Modells fortfahren können.

Syntax

arcpy.management.AnalyzeDatasets(input_database, include_system, {in_datasets}, {analyze_base}, {analyze_delta}, {analyze_archive})
ParameterErklärungDatentyp
input_database

Die Enterprise-Geodatabase, die die zu analysierenden Daten enthält.

Workspace
include_system

Gibt an, ob Statistiken für die Status- und State-Lineages-Tabellen erfasst werden.

Hinweis:

Sie müssen der Geodatabase-Administrator sein, um diese Option aktivieren zu können.

Diese Option gilt nur für Geodatabases. Wenn der Eingabe-Workspace eine Datenbank ist, wird diese Option ignoriert.

  • NO_SYSTEMStatistiken werden für die Status- und State-Lineages-Tabellen nicht erfasst. Dies ist die Standardeinstellung.
  • SYSTEMStatistiken werden für die Status- und State-Lineages-Tabellen erfasst.
Boolean
in_datasets
[in_datasets,...]
(optional)

Namen der Datasets, die analysiert werden. Ein einzelnes Dataset oder eine Python-Liste von Datasets ist zulässig. Dataset-Namen verwenden Pfade relativ zum Eingabe-Workspace; vollständige Pfade werden nicht als Eingabe angenommen.

Beachten Sie, dass der verbundene Benutzer der Datenbesitzer der bereitgestellten Datasets sein muss.

String
analyze_base
(optional)

Gibt an, ob die ausgewählten Dataset-Basistabellen analysiert werden.

Diese Option gilt nur für Geodatabases. Wenn der Eingabe-Workspace eine Datenbank ist, wird diese Option ignoriert.

  • ANALYZE_BASE Statistiken werden für die Basistabellen der ausgewählten Datasets erfasst. Dies ist die Standardeinstellung.
  • NO_ANALYZE_BASE Statistiken werden für die Basistabellen der ausgewählten Datasets nicht erfasst.
Boolean
analyze_delta
(optional)

Gibt an, ob die ausgewählten Dataset-Delta-Tabellen analysiert werden.

Diese Option gilt nur für Geodatabases. Wenn der Eingabe-Workspace eine Datenbank ist, wird diese Option ignoriert.

  • ANALYZE_DELTA Statistiken werden für die Delta-Tabellen der ausgewählten Datasets erfasst. Dies ist die Standardeinstellung.
  • NO_ANALYZE_DELTA Statistiken werden für die Delta-Tabellen der ausgewählten Datasets nicht erfasst.
Boolean
analyze_archive
(optional)

Gibt an, ob die ausgewählten Dataset-Archivtabellen analysiert werden.

Diese Option gilt nur für Geodatabases. Wenn der Eingabe-Workspace eine Datenbank ist, wird diese Option ignoriert.

  • ANALYZE_ARCHIVE Statistiken werden für die Archivtabellen der ausgewählten Datasets erfasst. Dies ist die Standardeinstellung.
  • NO_ANALYZE_ARCHIVE Statistiken werden für die Archivtabellen der ausgewählten Datasets nicht erfasst.
Boolean

Abgeleitete Ausgabe

NameErklärungDatentyp
out_workspace

Der aktualisierte Workspace.

Workspace

Codebeispiel

AnalyzeDatasets – Beispiel 1 (Python-Fenster)

Das folgende Skript für das Python-Fenster veranschaulicht, wie das Werkzeug AnalyzeDatasets im unmittelbaren Modus verwendet wird.

# Import system modules
import arcpy

arcpy.AnalyzeDatasets_management("c:/Connections/tenone@sde.sde",
                                 "SYSTEM",
                                 "gdb.city;gdb.state;map.lines",
                                 "ANALYZE_BASE",
                                 "ANALYZE_DELTA",
                                 "ANALYZE_ARCHIVE")
AnalyzeDatasets – Beispiel 2 (eigenständiges Skript)

Das folgende eigenständige Skript veranschaulicht, wie das Werkzeug AnalyzeDatasets verwendet wird, um alle Datasets für eine gegebene Benutzerverbindung zu analysieren.

# Name: AnalyzeDatasets.py
# Description: analyzes all datasets in an enterprise geodatabase
#              for a given user.

# Import system modules
import arcpy
import os

# set workspace
# the user in this workspace must be the owner of the data to analyze.
workspace = arcpy.GetParameterAsText(0)

# set the workspace environment
arcpy.env.workspace = workspace

# NOTE: Analyze Datasets 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 analyze datasets
# Note: to use the "SYSTEM" option the workspace user must be an administrator.
arcpy.AnalyzeDatasets_management(workspace, "NO_SYSTEM", dataList, "ANALYZE_BASE","ANALYZE_DELTA","ANALYZE_ARCHIVE")
print("Analyze Complete")

Lizenzinformationen

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

Verwandte Themen