Ich frage mich gerade etwas über Snapshot Verhalten auf Read Committed Isolation Level. Nehmen wir an, ich habe eine Tabelle mit dem Namen "A". Hier ist die erste Transaktion:SQL Server Read Committed Snapshot
Select blabla
From A
Insert Into A blabla
und zweite Transaktion hat die gleichen
Select blabla
From A
Insert Into A blabla
und davon ausgeht, dass unter Timeline aufgetreten:
Tran1: select
Tran1: insert (not yet committed)
Tran2: select (I don't know it is possible or not)
Tran2: insert
Soweit ich weiß, in Standard-Lese begangen isolation level, trans2 select query würde blockiert werden, weil der Befehl tran1 noch nicht festgeschrieben oder zurückgesetzt wurde. Aber während "is_read_committed_snapshot" aktiviert ist, erwarte ich, dass während des Einfüge- oder Aktualisierungsbefehls keine der Sperren erfasst wird.
Was wird mit tran2 passieren?
Ich erwarte, dass trans2 Select Abfrage wird nicht die Daten, die von tran1 eingefügt, weil es "Dirty Read" wäre. Aber es würde auch nicht blockieren.
Aufgrund der Tran1-Einfügeabfrage erhält keine Sperre, wäre diese Situation kein Problem über die gleichzeitige Ausführung dieser beiden Transaktionen?
Seine Frage ist über RCSI, nicht über SNAPSHOT – sepupic