Blokowanie w aparacie bazy danych

Locking is a mechanism used by the Microsoft Aparat baz danych programu SQL Server to synchronize access by multiple users to the same piece of data at the same time.

Przed transakcją nabywa zależność od bieżącego stanu fragment danych, takich jak czytanie lub modyfikując dane, go musi ochrony przed efekty inna transakcja modyfikowania tych samych danych.Transakcja robi to poprzez żądanie blokada na fragment danych.Blokady mają różne tryby, takich jak udostępnione lub wyłączności.Tryb blokada definiuje poziom zależności transakcja ma na danych.Transakcji nie można udzielić blokada, które byłoby w konflikcie z trybu blokada już przyznanych na te dane do innej transakcji.Jeśli transakcja żądania trybu blokada, który koliduje z blokada, które już zostały przyznane na te same dane wystąpienie Aparat baz danych zatrzyma żądającego transakcji aż do chwili zwolnienia blokada pierwszej.

Gdy transakcja modyfikuje fragment danych, posiada blokada ochrona modyfikacji do zakończenia transakcji.Jak długo transakcji przechowuje blokad nabyte w celu ochrony odczytać zależy od operacji poziom izolacji transakcji ustawienie.Wszystkie blokady przechowywane przez transakcję są zwalniane po zakończeniu transakcji (albo zatwierdza lub wycofuje).

Aplikacje nie zazwyczaj żądania blokady bezpośrednio.blokada są zarządzane wewnętrznie przez część Aparat baz danych o nazwie Menedżer blokada.Gdy wystąpienie Aparat baz danych procesy Transact-SQL instrukcja, Aparat baz danych procesora określa, które zasoby mają dostęp do kwerendy.Procesor kwerend określa, jakiego typu blokady są wymagane do ochrony każdego zasób na podstawie typu dostępu i poziom izolacji transakcji ustawienie.Procesor kwerend następnie żąda blokad odpowiednie z Menedżera blokada.Menedżer blokad udziela blokad, jeśli nie konflikty blokada przechowywane przez inne transakcje.

Poniższa tabela zawiera listę tematów opisujących główne pojęcia blokowania.

Temat

Opis

Rozdrobnienie blokady i hierarchii

Blokady można żądać dla różnych typów zasobów, takich jak wiersze, strony, indeksy, tabel lub baz danych.Niektóre operacje wymagają wprowadzania blokady na wielu poziomach ziarnistość, tworzących hierarchię blokad.

Tryby Lock

Blokady mają różne tryby, które określają poziom dostępu mają inne transakcje do zablokowanej zasób.

Zablokuj zgodności (aparat bazy danych)

Wielu transakcji mogą uzyskiwać równocześnie blokad dla tego zasób, jeśli ich tryby blokada są zgodne.Transakcji żądanie trybu blokada, który koliduje z istniejącą blokadę, transakcji jest wstrzymane, dopóki nie zwalnia blokadę pierwszy.

Blokowanie zakresu klucza

Blokowanie zakres kluczy umożliwia transakcji używany poziom izolacji serializować zapobiegające fantomu wstawiania i usuwania.

Eskalację blokady (aparat bazy danych)

Jeśli transakcja nabywa dużą liczbę blokad wiersza lub strona, Aparat baz danych może udzielić blokada tabela , a następnie zwolnij wszystkie blokada niższego poziom, aby zminimalizować obciążenie blokada.

Blokowanie dynamiczne

Aparat baz danych Dynamicznie można wybrać poziom blokada ziarnistość na podstawie szacunku Optymalizator liczby wierszy Transact-SQL zostanie instrukcja odniesienia.

Wyświetlanie informacji o blokowaniu (aparat bazy danych)

Aparat baz danych i jego skojarzony API zapewnia kilka mechanizmów do wyświetlania informacji na temat blokady aktualnie posiadanych w wystąpienie lub bazy danych.

Deadlocking

Martwychblokadas wystąpić podczas dwóch trwale zadania bblokada siebie ponieważ każde zadanie ma blokada zasób wymaganych przez inne zadania.