Beschreibung
Jedes Mal, wenn Sie ein Geoverarbeitungswerkzeug ausführen, werden Informationen über das Werkzeug und seine Parameter gespeichert. Diese Informationen werden als Geoverarbeitungsverlauf bezeichnet. Jedes Geoverarbeitungswerkzeug, das neue Ausgabedaten erzeugt oder die Eingabedaten aktualisiert, fügt Metadaten über die Ausführung des Geoverarbeitungswerkzeugs hinzu. Diese umfassen den Namen des Werkzeugs, den Speicherort und die verwendeten Parameter.
In einer produktiven Umgebung werden die Geoverarbeitungswerkzeuge und diverse Python-Skripte oft täglich ausgeführt (z.B. Komprimieren und Analyse). Dies führt dazu, dass die Metadaten nach einigen Jahren sehr stark wachsen können (in etwa zwischen 30-100 MB). Solch grosse Metadaten haben in der Regel einen negativen Einfluss auf die gesamte Datenbank-Performance. In diesem Artikel wird beschrieben, was Sie unternehmen können, um das Problem zu lösen und künftig zu umgehen.
Metadatenprotokollierung deaktivieren
Die Esri Geoverarbeitungswerkzeuge fügen die Metadaten standardmässig in die Enterprise-Geodatenbanken ein. Dieses Verhalten kann in ArcGIS Desktop und ArcGIS Pro, als auch in jedem Python-Skript deaktiviert werden.
Python
Für Skript-Werkzeuge und eigenständige Skripte (Skripte, die ausserhalb einer ArcGIS-Anwendung ausgeführt werden) können Sie die Verlaufsprotokollierung mit der Funktion SetLogHistory aktivieren oder deaktivieren. Wir empfehlen, wann immer möglich und insbesondere für Compress- und Analyse-Skripts, die Protokollierung zu deaktivieren:
arcpy.SetLogHistory(false)
ArcGIS Desktop und ArcGIS Pro
In ArcCatalog oder ArcMap kann das Protokollierungsverhalten deaktiviert werden, indem die Option Protokollierung (Logging) im Dialogfeld Geoverarbeitung > Geoverarbeitungsoptionen (im Beispiel Englisch: Geoprocessing > Geoprocessing Options) deaktiviert wird.
Bestehende Metadatenprotokolle löschen
Wir empfehlen die Metadaten via Python-Skript zu löschen. Es existieren sowohl Python-Skripte für ArcMap als auch für ArcGIS Pro. Wir empfehlen nach Möglichkeit die Bereinigung mit ArcGIS Pro durchzuführen. Sie finden entsprechende Skripte unten in diesem Artikel.
Tipp: Auf einem System können mehrere Python Installationen vorhanden sein. Um sicherzustellen, dass die passende verwendet wird, empfehlen wir explizit die python.exe der betroffenen Version aufzurufen und das Pythonskript als Parameter zu übergeben. Beispiel für ArcGIS 10.8.x:
|
Metadaten und ihre Auswirkung auf die Systemleistung
Grosse Metadaten beeinflussen unter anderem folgende Prozesse:
- Zugriff auf die Datenbank via ArcCatalog oder ArcMap
-
WebOffice Drucken
-
Neustart der WebOffice-Anwendung
-
Start von GEONIS Projekten und MXDs
Welche Kunden sind von diesem Problem betroffen
- Alle Kunden die ArcGIS Enterprise Geodatenbanken benutzen (Oracle, SQL Server, PostgreSQL)
Um zu verifizieren, wie stark man von diesem Problem betroffen ist, kann die Metadatengrösse abgefragt werden. Mit nachfolgender SQL-Abfrage kann der Workspace und die Feature-Class Metadatengrösse geprüft werden:
MS SQL Server
SELECT TOP 20 datalength(documentation) as length, name
from <database>.sde|dbo.GDB_ITEMS
order by length DESC
Oracle
SELECT Length(Documentation) laenge, name
FROM sde.GDB_ITEMS_vw
where documentation is not null
and rownum <= 20
ORDER BY laenge DESC;
PostgreSQL
select length(xmlserialize(Content utde.sde.gdb_items.documentation as varchar)) as length, name
from utde.sde.gdb_items
where documentation is not null
order by length desc
limit 20;
Ergebnis-Beispiel (SQL Server):
In diesem Beispiel entspricht Length ca. 60 Mio. Bytes (60 MB).
ArcCatalog benötigte ca. 38 Sekunden, um diese Datenbankverbindung zu öffnen. Nachdem die Metadatenprotokolle gelöscht wurden, konnte die Verbindung in wenigen Sekunden aufgebaut werden. Die Performancegewinne können je nach Umgebung und Datenbanksystem stark variieren.
Quellen
How To: Delete geoprocessing history from a geodatabase in ArcMap using Python
How To: Delete geoprocessing history from a geodatabase in ArcGIS Pro using Python
FAQ: Why is the connection slow to a SQL Server geodatabase?
Kommentare
0 Kommentare
Zu diesem Beitrag können keine Kommentare hinterlassen werden.