Geodatabase-Komprimierung
Bei der Geodatabase-Komprimierung werden nicht erforderliche States und Zeilen aus den Systemtabellen entfernt, die Versionen und versionierte Änderungen protokollieren.
Um den Komprimierungsvorgang besser zu verstehen, müssen Sie sich zunächst mit der Versionierung vertraut machen. Wenn Sie mit diesem Konzept noch nicht vertraut sind, finden Sie weitere Informationen unter Kurzer Überblick über die Versionierung.
Was ist Komprimierung?
Bei der Komprimierung werden alle States entfernt, die nicht mehr von einer Version referenziert werden. Alle Zeilen in den Delta-Tabellen werden in die Business-Tabelle verschoben. Komprimierungsvorgänge können nur vom Geodatabase-Administrator ausgeführt werden. Diese werden, unabhängig vom jeweiligen Besitzer der Version, auf alle States der Geodatabase angewendet.
Die Komprimierung ist aus folgendem Grund erforderlich: Wenn eine Geodatabase über einen Zeitraum hinweg bearbeitet wird, erhöhen sich die Größe der Delta-Tabellen und die Anzahl der States. Je umfangreicher die Tabellen und je zahlreicher die States, desto mehr Daten müssen von ArcGIS jedes Mal verarbeitet werden, wenn Sie eine Version anzeigen oder abfragen. Die größten Auswirkungen auf die Performance hat daher nicht die Anzahl der Versionen, sondern der Umfang der Änderungen in den Delta-Tabellen für jede Version. Im Ergebnis können die Versionen unterschiedliche Zeiten für die Reaktion auf Abfragen aufweisen.
Um die Datenbank-Performance aufrechtzuerhalten, muss der Geodatabase-Administrator in regelmäßigen einen Komprimierungsvorgang ausführen, um nicht verwendete Daten zu löschen.
Geodatabases können mit dem ArcGIS for Desktop-Befehl "Komprimieren", mit dem Geoverarbeitungswerkzeug Komprimieren oder mit dem Python-Skript komprimiert werden. Weitere Informationen zum Komprimieren einer Geodatabase über das Katalogverzeichnis finden Sie unter Komprimieren einer Enterprise-Geodatabase bzw. Informationen zum Geoverarbeitungswerkzeug bzw. -skript finden Sie unter Komprimieren.
Was geschieht während der Komprimierung?
Während des Komprimierungsvorgangs wird zunächst die State-Tree-Konfiguration der Instanz in den Speicher eingelesen. Mithilfe dieser Information werden beim Komprimieren alle nicht zu einer Lineage gehörenden States gelöscht. Wenn Sie einen State löschen, werden alle mit dem gelöschten State verknüpften Zeilen der Delta-Tabellen gelöscht.
In einem weiteren Schritt der Datenbank-Komprimierung werden alle States jeder einzelnen Lineage zu einem State zusammengefasst. In diesem Fall umfasst die Lineage eine Gruppe von States, die zu einem State zusammengefasst werden kann, ohne dass dabei die logische Ausprägung von Tabellen in einer bestimmten Version beeinflusst wird.
Zuletzt werden, sofern anwendbar, die Zeilen der Delta-Tabellen in die Basistabellen (oder Business-Tabellen) verschoben.
Bei jedem Schritt dieses Vorgangs werden die Datenbanktransaktionen beim Komprimieren der einzelnen Tabellen gestartet und wieder gestoppt. So kann überprüft werden, dass jede Tabelle in den unterschiedlichen Phasen des Komprimierungsvorgangs konsistent ist.
Der Komprimierungsvorgang kann auch während der Ausführung gestoppt werden, da er auf eine direkte Konsistenz der Daten abzielt. Wenn daher während der Ausführung ein Fehler auftritt, diese fehlschlägt oder abrupt abbricht, sind die komprimierten versionierten Tabellen in Bezug auf die Darstellung einer beliebigen Version logisch richtig. Ein möglicher Grund für den Abbruch des Komprimierungsvorgang liegt möglicherweise dann vor, wenn Sie die Komprimierung ausführen, während Benutzer mit der Geodatabase verbunden sind, und Sie dann feststellen, dass die Komprimierung einen Großteil Ihrer Systemressourcen beansprucht. In diesem Fall beenden Sie den Vorgang und führen Sie ihn erneut aus, wenn weniger oder keine Benutzer mit der Geodatabase verbunden sind.
Vollständiges Komprimieren einer Geodatabase
In einer vollständig komprimierten Geodatabase sind keine Zeilen in den Delta-Tabellen vorhanden, und der State-Tree wird auf Null zurückgesetzt. Die größte Performance-Steigerung ergibt sich durch vollständige Komprimierung der Geodatabase. Gehen Sie dazu folgendermaßen vor:
- Gleichen Sie alle ausstehenden Änderungen der Child-Versionen mit der DEFAULT-Version ab, und schreiben Sie sie zurück. Als Geodatabase-Administrator können Sie sehen, in welcher Reihenfolge sehen die Versionen standardmäßig abgeglichen werden sollen, in dem Sie im Dialogfeld Geodatabase-Verwaltung die Unterregisterkarte Reihenfolge abgleichen der Registerkarte Versionen öffnen. Informationen zur Unterregisterkarte Reihenfolge abgleichen finden Sie unter Versionseigenschaften.
- Löschen Sie die Versionen, nachdem Sie Bearbeitungen abgeglichen und zurückgeschrieben haben.
- Vergewissern Sie sich, dass kein Benutzer mit der Datenbank verbunden ist.
- Führen Sie den Komprimierungsvorgang aus.
Die Ergebnisse der jeweiligen Komprimierungsvorgänge werden in der Tabelle COMPRESS_LOG (SDE_compress_log in Geodatabases in SQL Server- und PostgreSQL-Datenbanken) in der Geodatabase angezeigt. Sie können auch anhand der Tabelle VERSIONS (SDE_versions in Geodatabases in SQL Server- und PostgreSQL) prüfen, ob die State-ID für die Version „DEFAULT“ auf NULL zurückgesetzt wurde. Wenn dies der Fall ist und keine weiteren offenen Versionen vorhanden sind, wurde eine vollständige Komprimierung der Datenbank erreicht.
Es kann sein, dass Sie vor Ausführen eines Komprimierungsvorgangs nicht immer Versionen abgleichen, zurückschreiben oder löschen können oder die Benutzer von der Datenbank trennen können. Wenn Sie beispielsweise den Verlauf mithilfe von Versionen verfolgen oder Designversionen für ein Projekt beibehalten müssen, bleiben die historischen und die Designversionen einem State innerhalb des State-Trees zugeordnet und werden daher während des Komprimierungsvorgangs nicht gelöscht. Eine Verbesserung der Performance kann auch erreicht werden, wenn Sie zur Komprimierung nicht alle genannten Schritte ausführen.
Häufigkeit von Komprimierungsvorgängen
Je nachdem wie viele Bearbeitungsvorgänge in Ihrer Geodatabase ausgeführt werden, sollte diese auch entsprechend oft komprimiert werden. Wenn Sie viele Bearbeitungsvorgänge ausführen, sollten Sie die Geodatabase einmal täglich komprimieren. Bei einer mittleren oder geringen Anzahl von Bearbeitungsvorgängen sollten Sie die Datenbank mindestens einmal wöchentlich komprimieren.
Es ist wichtig, dass der Zeitraum zwischen den Komprimierungsvorgängen nicht zu groß ist. Je mehr versionierte Bearbeitungsvorgänge ausgeführt werden, desto mehr Zeit nimmt auch die Komprimierung der Geodatabase in Anspruch. Wenn die Geodatabase nicht mindestens einmal pro Woche komprimiert wird, kann der Komprimierungsvorgang mehrere Stunden dauern.
Nach der Komprimierung der Geodatabase
Nach Abschluss der Komprimierung sollten Sie die Statistiken Ihrer Geodatabase aktualisieren. Der Geodatabase-Administrator muss die Statistik in den Systemtabellen aktualisieren und einzelne Benutzer können die Statistik ihrer bearbeiteten Datasets aktualisieren. Weitere Informationen zum Aktualisieren von Statistik finden Sie im Abschnitt Verwenden des Werkzeugs "Datasets analysieren", um Statistik in Geodatabase-Systemtabellen zu aktualisieren oder unter Aktualisieren von Statistiken in einer Geodatabase mit dem Befehl "Analysieren".