Share via


Parallelitätstypen

Um das Problem der reduzierten Parallelität in Cursorn zu lösen, macht ODBC vier verschiedene Arten von Cursorkoncurrency verfügbar:

  • Schreibgeschützt Der Cursor kann Daten lesen, aber keine Daten aktualisieren oder löschen. Dies ist der Standard-Parallelitätstyp. Obwohl die DBMS Zeilen zum Erzwingen der Isolationsebenen "Repeatable Read" und "Serializable" sperren können, können Lesesperren anstelle von Schreibsperren verwendet werden. Dies führt zu einer höheren Parallelität, da andere Transaktionen die Daten zumindest lesen können.

  • Beim Sperren des Cursors wird die niedrigste Sperrebene verwendet, die erforderlich ist, um sicherzustellen, dass Zeilen im Resultset aktualisiert oder gelöscht werden können. Dies führt in der Regel zu sehr niedrigen Parallelitätsstufen, insbesondere auf den Ebenen "Repeatable Read" und "Serializable Transaction Isolation".

  • Optimistische Parallelität mit Zeilenversionen und optimistischer Parallelität mithilfe von Werten Der Cursor verwendet optimistische Parallelität: Er aktualisiert oder löscht Zeilen nur, wenn sie seit dem letzten Lesen nicht geändert wurden. Um Änderungen zu erkennen, werden Zeilenversionen oder Werte verglichen. Es gibt keine Garantie dafür, dass der Cursor eine Zeile aktualisieren oder löschen kann, aber die Parallelität ist viel höher als beim Sperren. Weitere Informationen finden Sie im folgenden Abschnitt: Optimistische Parallelität.

Eine Anwendung gibt an, welche Art von Parallelität der Cursor mit dem attribut SQL_ATTR_CONCURRENCY-Anweisung verwendet werden soll. Um zu bestimmen, welche Typen unterstützt werden, ruft sie SQLGetInfo mit der Option SQL_SCROLL_CONCURRENCY auf.