Angenommen, ein Programm aktualisiert unter Verwendung einer Transaktion Daten in einer ArcSDE-Geodatabase. Vor dem Festschreiben der Transaktion werden die Daten jedoch von einem anderen Programm gelesen. Liest das zweite Programm die neuen, jedoch noch nicht festgeschriebenen Daten oder die alten Daten? Die Antwort hängt vom Isolationsgrad der Transaktion ab.
Wenn die Transaktion es anderen Programmen erlaubt, die noch nicht festgeschriebenen Daten zu lesen, liest das zweite Programm die aktualisierten Daten. Dies kann zu einer höheren Performance führen, weil das zweite Programm nicht mit dem Lesen warten muss, bis die Transaktion beendet ist. Es besteht jedoch ein Nachteil: Wenn das zweite Programm Daten liest, die später nicht festgeschrieben werden, wird es letztlich entweder falsche Daten oder nicht vorhandene Daten gelesen haben.
Damit Benutzer das optimale Verhalten für ihre Anwendung auswählen können, bieten DBMS Isolationsgrade, mit denen festgelegt wird, wie Prozesse von anderen, nebenläufig ausgeführten Prozessen isoliert werden sollen. Isolationsgrade können durch den Datenbankadministrator festgelegt werden, und sie gelten für alle Transaktionen in der Datenbank. Außerdem können sie auch in einer Anwendung oder vor einer bestimmten Transaktion gesetzt werden. Ein Isolationsgrad gibt Folgendes an:
- Der Grad, zu dem die von der Anwendung gelesenen und aktualisierten Zeilen für andere, nebenläufig ausgeführte Prozesse verfügbar sind.
- Der Grad, zu dem Aktualisierungen aus anderen, nebenläufig ausgeführten Anwendungsprozessen für die Anwendung verfügbar sind.
In DBMSs können Sie einen der vier Isolationsgrade festlegen, die im Folgenden von der schwächsten bis zur stärksten Isolation aufgeführt sind. Die Merkmale jedes Grades gelten zusätzlich zu den Merkmalen der jeweils niedrigeren Grade. Höhere Isolationsgrade bieten einen höheren Grad der Datenintegrität, aufgrund der für längere Zeiten gesetzten Sperren jedoch auf Kosten der Nebenläufigkeit.
UNCOMMITTED READ: Ermöglicht die minimale Isolation von nebenläufigen Transaktionen. Die Transaktion kann von nebenläufigen Transaktionen geänderte Daten lesen, bevor diese festgeschrieben werden.
COMMITTED READ: Die Transaktion kann ausschließlich festgeschriebene Daten lesen.
REPEATABLE READ: Eine zusätzliche Einschränkung, die gilt, wenn dieselben Zeilen in einer Transaktion mehrmals gelesen werden. Hierbei wird sichergestellt, dass die Zeilen beim erneuten Lesen identisch sind.
SERIALIZABLE: Diese Isolationsstufe bietet den höchsten Grad der Isolation von nebenläufigen Transaktionen. Eine Transaktion kann nur Daten lesen, die vor dem Beginn der Transaktion festgeschrieben wurden. Daten, die während der Ausführung der Transaktion von nebenläufigen Transaktionen geändert und festgeschrieben wurden, können nicht gelesen werden.
In Ihrem DBMS werden möglicherweise andere Bezeichnungen verwendet. Die Funktionsweise jedes dieser Grade ist in allen DBMSs ähnlich, jedoch bestehen wichtige Unterschiede. Um Fehler beim Entwickeln von Anwendungen und Workflows zu vermeiden, sollten Sie sich unbedingt mit den Auswirkungen der Isolationsgrade auf Sperren und Nebenläufigkeit in Ihrem DBMS vertraut machen. Weitere Informationen finden Sie in der Dokumentation zu Ihrem DBMS.
Weitere Informationen zu den Auswirkungen von Isolationsgraden in ArcGIS sowie zu möglichen Problemen mit der Nebenläufigkeit finden Sie unter Nebenläufigkeit und Sperren.