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-, PostgreSQL- und Informix-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
Parameter | Erläuterung | Datentyp |
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.
| 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.
| 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.
| 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.
| Boolean |
Codebeispiel
Das folgende Skript im Python-Fenster veranschaulicht, wie das Werkzeug "AnalyzeDatasets" im unmittelbaren Modus verwendet wird.
# Import system modules
import arcpy
arcpy.AnalyzeDatasets_management("Database Connections/tenone@sde.sde",
"SYSTEM",
"gdb.city;gdb.state;map.lines",
"ANALYZE_BASE",
"ANALYZE_DELTA",
"ANALYZE_ARCHIVE")
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, 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"