Suche…


Einführung

In Datenbanksystemen bestimmt die Isolation, wie die Transaktionsintegrität für andere Benutzer und Systeme sichtbar ist. Sie definiert, wie und wann die durch einen Vorgang vorgenommenen Änderungen für andere sichtbar werden. Das Phantom Read kann auftreten, wenn Sie Daten erhalten, die noch nicht in die Datenbank übernommen wurden.

Bemerkungen

Sie können die verschiedenen ISOLATION LEVEL auf MSDN lesen

Isolationsstufe LESEN UNBESTIMMT

Erstellen Sie eine Beispieltabelle für eine Beispieldatenbank

CREATE TABLE [dbo].[Table_1](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [title] [varchar](50) NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

Öffnen Sie nun einen Ersten Abfrage-Editor (in der Datenbank), fügen Sie den folgenden Code ein und führen Sie ihn aus ( berühren Sie nicht das --rollback ). In diesem Fall fügen Sie eine Zeile in die Datenbank ein, ohne Änderungen zu übernehmen.

begin tran

INSERT INTO Table_1 values('Title 1')

SELECT * FROM [Test].[dbo].[Table_1]

--rollback

Öffnen Sie nun einen zweiten Abfrage-Editor (in der Datenbank), geben Sie den folgenden Code ein und führen Sie ihn aus

begin tran

set transaction isolation level READ UNCOMMITTED

SELECT * FROM [Test].[dbo].[Table_1]

Möglicherweise stellen Sie fest, dass im zweiten Editor die neu erstellte Zeile (jedoch nicht festgeschrieben) aus der ersten Transaktion angezeigt wird. Führen Sie im ersten Editor das Rollback aus (wählen Sie das Rollback-Wort aus und führen Sie es aus).

-- Rollback the first transaction
rollback

Führen Sie die Abfrage im zweiten Editor aus, und Sie sehen, dass der Datensatz verschwunden ist (Phantom Read). Dies geschieht, weil Sie der zweiten Transaktion mitteilen, alle Zeilen und auch die nicht festgeschriebenen Daten abzurufen.

Dies tritt auf, wenn Sie die Isolationsstufe mit ändern

set transaction isolation level READ UNCOMMITTED


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow