2009-06-15 4 views
0

Wenn Sie die Gleichzeitigkeit so weit wie möglich minimieren müssen, welche Isolationsstufe (wiederholbar lesen, serialisierbar, gelesen, nicht gelesen lesen) würde am besten funktionieren?Welchen Isolationsmodus sollten Sie wählen, wenn Sie die geringste Parallelität wünschen?

+0

Bitte geben Sie an, welche Marke der Datenbank Sie verwenden. Die Transaktionsisolationsstufen variieren je nach RDBMS-Marke in ihrem Verhalten und ihrer Terminologie. –

+1

Es kann hilfreich sein zu erklären, warum Sie die Nebenläufigkeit minimieren möchten. Das ist sehr wichtig für die Minimierung der Leistung, die normalerweise nicht gefragt wird. –

+0

@ Bill Karwin: Ich vermute, er meinte den SQL-Standard –

Antwort

0

ich Sie wirklich raten wollen Gleichzeitigkeit so viel wie möglich maximieren hier, die Leistung zu erhöhen. Leider genügt es nicht, einen Isolationsmodus zu wählen. Die wirkliche Frage zu diesen Isolationsmodi lautet: Können Sie sie in Ihrer speziellen Anwendung verwenden?

Das hängt wirklich von den intimen Details Ihrer Anwendung ab, und das ist wahrscheinlich nicht etwas, was wir bei Stack Overflow debuggen können.

im Allgemeinen jedoch, falls Sie keine Datenkorruption bekommen, von den meisten gleichzeitig zu dest die Isolationsstufen für Oracle sind:

  1. uncommitted
  2. Lese begangen
  3. wiederholbare lesen
  4. lesen
  5. serialisierbar.

Es ist anders für, sagen wir, PostgreSQL, weil es ein anderes Synchronisationsmodell (MVCC) verwendet, wo das Lesen frei ist, aber wenn Sie schreiben, laufen Sie Gefahr des Zurücksetzens.

Ich nehme an, die wirkliche Antwort auf diese Frage ist, fragen und erhalten führt zu vielen Tagen von Lernmaterialien, oder einfach jemanden einstellen, um mit Ihrer besonderen Situation umzugehen. Obwohl es sehr technisch ist, gibt es keine festen Regeln: Man muss sowohl die Theorie hinter dem Geschehen und die spezifische Situation verstehen, um eine nützliche Empfehlung zu geben.