Locking and Row Versioning

The SQL Server Database Engine uses the following mechanisms to ensure the integralność of transactions and maintain the consistency of databases when multiple users are accessing data at the same czas:

  • Blokowanie

    Każda transakcja żądania blokady różnych typów zasobów, takich jak wierszy, stron lub tabel, na którym jest zależne od transakcji.blokada zablokować inne transakcje z modyfikacja zasobów w taki sposób, że mogłoby spowodować problemy z transakcji żądanie blokada.Każdej transakcji powoduje zwolnienie blokad jej, gdy nie jest już ma zależności zasobów zablokowane.

  • Przechowywanie wersji wiersza

    Po włączeniu poziom izolacji na przechowywanie wersji wiersza Database Engine przechowuje wersje każdego wiersza, który jest modyfikowany. Aplikacje można określić transakcji wyświetlić dane, jak go istniały w momencie rozpoczęcia transakcji lub kwerendzie, a nie chroni wszystkie operacje odczytu z blokowaniem za pomocą wersji wiersza.Przy użyciu wersji wiersza, znacznie zmniejsza się prawdopodobieństwo, że operacja odczytu będzie blokować inne transakcje.

Przechowywanie wersji blokowanie wierszy i uniemożliwić użytkownikom odczytywanie danych nieprzydzielonych i uniemożliwić wielu użytkowników próby zmiany te same dane w tym samym czas.Bez blokowania lub wiersza przechowywania wersji kwerendy wykonywane przed danych, który może powodować nieoczekiwane rezultaty, przywracając dane, które nie została jeszcze została zatwierdzona w bazie danych.

Aplikacje można transakcji poziomów izolacji, które definiują poziom ochrony dla transakcji z modyfikacji dokonanych przez inne transakcje.Wskazówki do poziom tabela można określić dla osoby Transact-SQL instrukcje, aby dodatkowo dostosować zachowanie do wymagań aplikacji.

Użytkownicy mogą sterować wykonania wersji wiersza przez włączanie i wyłączanie opcji bazy danych.Aby uzyskać więcej informacji zobacz Enabling Row Versioning-Based Isolation Levels i Za pomocą wiersza oparte na wersji poziomy izolacji.