Teilen über


Festlegen der Transaktionsisolationsstufe

Um die Transaktionsisolationsstufe festzulegen, verwendet eine Anwendung das SQL_ATTR_TXN_ISOLATION Verbindungsattribute. Wenn die Datenquelle die angeforderte Isolationsstufe nicht unterstützt, kann der Treiber oder die Datenquelle eine höhere Ebene festlegen. Um zu bestimmen, welche Transaktionsisolationsstufen eine Datenquelle unterstützt und was die Standardisolationsstufe ist, ruft eine Anwendung SQLGetInfo mit den Optionen SQL_TXN_ISOLATION_OPTION bzw. SQL_DEFAULT_TXN_ISOLATION auf.

Höhere Transaktionsisolationsebenen bieten den größten Schutz für die Integrität von Datenbankdaten. Serialisierbare Transaktionen sind garantiert nicht betroffen von anderen Transaktionen und daher garantiert, dass sie die Datenbankintegrität Standard.

Eine höhere Transaktionsisolation kann jedoch zu einer langsameren Leistung führen, da die Wahrscheinlichkeit erhöht wird, dass die Anwendung auf die Freigabe von Datensperren warten muss. Eine Anwendung kann eine niedrigere Isolationsebene angeben, um die Leistung in den folgenden Fällen zu erhöhen:

  • Wenn sichergestellt werden kann, dass keine anderen Transaktionen vorhanden sind, die die Transaktionen einer Anwendung beeinträchtigen könnten. Diese Situation tritt nur unter begrenzten Umständen auf, z. B. wenn eine Person in einem kleinen Standard Unternehmen dBASE-Dateien enthält, die Personaldaten auf einem Computer enthalten und diese Dateien nicht freigeben.

  • Wenn die Geschwindigkeit wichtiger ist als die Genauigkeit, und alle Fehler sind wahrscheinlich klein. Nehmen wir beispielsweise an, dass ein Unternehmen viele kleine Verkäufe tätigt und dass große Verkäufe selten sind. Eine Transaktion, die den Gesamtwert aller offenen Verkäufe schätzt, kann die Isolationsstufe "Nicht freigegeben lesen" sicher verwenden. Obwohl die Transaktion Aufträge umfassen würde, die geöffnet oder geschlossen werden und anschließend zurückgesetzt werden, würden diese im Allgemeinen abbrechen und die Transaktion wäre viel schneller, da sie nicht jedes Mal blockiert wird, wenn eine solche Bestellung auftritt.

Weitere Informationen finden Sie unter "Optimistische Parallelität".