Udostępnij za pośrednictwem


Row Versioning-based Isolation Levels in the Database Engine

The Microsoft SQL Server Database Engine introduces a new implementation of an existing transaction isolation level, read committed, that provides a statement level snapshot using row versioning.SQL Server Database Engine also introduces a new transaction isolation level, snapshot, that provides a transaction level snapshot also using row versioning.

Ustawiając opcję bazy danych READ_COMMITTED_SNAPSHOT ON włączono odczytu izolację zadeklarowanej za pomocą wersji wiersza.migawka izolacji jest włączona, ustawiając opcję bazy danych ALLOW_SNAPSHOT_ISOLATION.Po włączeniu obu opcji dla bazy danych, Database Engine przechowuje wersje każdego wiersza, który jest modyfikowany. Za każdym razem, gdy transakcja modyfikuje wiersz, obraz wiersz przed modyfikacją jest kopiowana do strona w magazynu wersja.Magazynu wersja jest to zbiór danych stron tempdb.Wielu transakcji zmodyfikowania wiersza, wiele wersja wiersza są połączone w łańcuchu wersja.Operacje odczytu, korzystając z wersja wiersza pobrania ostatnią wersja każdego wiersza, które zostały zatwierdzone, po rozpoczęciu transakcji lub instrukcja.

Aplikacje, które zostały napisane dla SQL Server 2000 lub są nowe na SQL Server, wdrożenie odczytać zadeklarowanej izolacji, określając poziom izolacji transakcji zadeklarowanej odczytu, gdy opcja READ_COMMITTED_SNAPSHOT bazy danych jest włączone za pomocą wersji wiersza. Wszystkie operacje odczytu widoku wiersz wersji, które zostały zatwierdzone na czas uruchomiona instrukcja.Zapewnia to instrukcja poziom migawka danych.

Aplikacje napisane dla SQL Server wdrożenie izolacji migawka, gdy opcja ALLOW_SNAPSHOT_ISOLATION bazy danych jest włączone, określając poziom izolacji transakcji migawka. Odczytać wszystkie operacje w transakcji migawka wersji wiersz widoku, które zostały zatwierdzone na Godzina rozpoczęcia transakcji.Zapewnia to poziom transakcji migawka danych.

Dla transakcji przy użyciu na poziom izolacji oparte na przechowywanie wersji wiersza, operacje odczytu nie Żądaj udostępnionego blokad dla danych.Oznacza to, że czytelnicy utworzenie jego wersji wiersza nie blok innych czytelników lub moduły zapisujące dostęp do tych samych danych.Podobnie, moduły zapisujące nie blok czytników.Jednak autorzy zablokuje sobie nawet podczas pracy w obszarze poziomów izolacji na przechowywanie wersji wiersza.Operacje zapisu dwóch nie można modyfikować te same dane w tym samym czasie.

W poniższej tabela opisano tematy, które zawierają więcej informacji na temat poziomów izolacji na przechowywanie wersji wiersza.

Temat

Description

Understanding Row Versioning-Based Isolation Levels

W tym artykule opisano pojęcia dotyczące przechowywania wersji wiersza.

Wybieranie wierszy oparte na wersji poziomy izolacji

W tym artykule opisano korzyści i koszty przechowywania wersji w wierszu i zawiera zalecenia dla scenariuszy najlepiej nadaje się do przechowywania wersji wiersza.

Enabling Row Versioning-Based Isolation Levels

W tym artykule opisano opcje, które umożliwiają przechowywanie wersji wiersza w bazie danych.

Za pomocą wiersza oparte na wersji poziomy izolacji

W tym artykule opisano ograniczenia poziomów izolacji na przechowywanie wersji wiersza.

Obciążenie zasób wersji wiersza

Zawiera opis wpływu system przechowywania wersji wiersza i omówiono dynamicznych widoków Management (DMVs) i liczniki wydajności, które zwraca informacje o stanie wiersza wersji bazy danych i transakcji.