_
toggle menu eXmatrikulationsamt.de
online: 340 gäste

> nonreapeatable vs phantom read ne frage an die informatiker

Themen Layout: Standard · [Linear] · Outline Thema abonnieren | Thema versenden | Thema drucken
post 05 Feb 2007, 21:00
avatar
4. Schein
****

Punkte: 470
seit: 01.10.2003

Hallo leute...

was ist eigentlich der genaue unterschied zwischen einem

nonrepeatable read und einem
phantom read???

danke,
marco
ProfilPM
AntwortenZitierenTOP
 
Antworten(1 - 4)
post 05 Feb 2007, 21:08
avatar
6. Schein
*******

Punkte: 1280
seit: 25.10.2003

beim non können sich die daten beim erneuten lesen ändern, beim phantom könnens nur mehr werden, dh die db kann grösser werden.
ProfilPM
AntwortenZitierenTOP
post 05 Feb 2007, 23:02
avatar
4. Schein
****

Punkte: 470
seit: 01.10.2003

Zitat(cleanerjp @ 05 Feb 2007, 20:08)
beim non können sich die daten beim erneuten lesen ändern, beim phantom könnens nur mehr werden, dh die db kann grösser werden.
*

ah... cool... danke...
ProfilPM
AntwortenZitierenTOP
post 20 Feb 2007, 12:04

Neuling


Punkte: 1
seit: 20.02.2007

hi - ich hab von einem phantom read ne andere Auffassung.

Phantom read heißt, dass Datenbankeinträge - während deiner Transaktion veränderbar blieben. D.h. es können mehr oder weniger Datensätze sein bzw. sich die Attribute im resultset verändert haben. So, und das trifft nun mal für die drei Transaktionstypen für read uncommitted, read committed und repeatable read eben auch zu. Selbst bei repeatable read - weil n-Selects in einer Transaktion dort eben nur auf einen Stand vor der Transaktion ablaufen - und im Hintergrund - parallel - können sich darunter jedoch Änderungen ergeben haben! Nur bei serializeable werden die betroffenen Tables gesperrt! Damit ist ein phantom read ausgeschlossen.

Nun zum nonrepeatable read (2 selects in einer Transaktion - 2 unterschiedliche Ergebnisse)- der tritt deshalb nur beim read uncommitted und read committed auf, weil beide in einer Transaktion alles lesen, was gerade während ihrer Transaktionen verändert hat. Repeatable read jedoch liest nur das was vor seiner Transaktion bekannt war - so ne Art View - Kopie! Daher sind dort n-selects in einer Transaktion stimmig. Serializable sperrt die Tabellen und liest ebenso einen konstanten Datenbestand.

bye
Rheno

Dieser Beitrag wurde von rheno: 20 Feb 2007, 12:09 bearbeitet
ProfilPM
AntwortenZitierenTOP
1 Nutzer liest/lesen dieses Thema (1 Gäste)
0 Mitglieder: