Lock Granularity and Hierarchies
The Microsoft SQL Server Database Engine has multigranular locking that allows different types of resources to be locked by a transaction.Aby zminimalizować koszty blokowania, Database Engine blokad zasobów automatycznie poziom właściwe dla tego zadania. Blokowanie w mniejszych ziarnistość, takie jak wiersze, zwiększa współbieżność, ale ma wyższe koszty, ponieważ muszą znajdować się więcej blokad, jeśli wiele wierszy, są zablokowane.Blokowanie w większej ziarnistość, takie jak tabele, są drogie w zakresie współbieżność, ponieważ blokowanie całej tabela ogranicza dostęp do dowolnej części tabela przez inne transakcje.Jednak ma niższe koszty ponieważ utrzymywanie blokady mniejszą liczbę.
The Database Engine often has to acquire locks at multiple levels of ziarnistość to fully protect a zasób. Ta grupa blokad na wielu poziomach rozdrobnienia, jest nazywany hierarchii blokada.Na przykład w celu zapewnienia pełnej ochrony odczytu indeksu wystąpienie Database Engine może być uzyskanie blokady udział w wierszach i blokowaniem udostępnienie zamierzone strony i tabela.
W poniższej tabela pokazano zasoby Database Engine można zablokować.
Zasób |
Description |
---|---|
IDENTYFIKATOR RID |
Identyfikator wiersza, używane do blokada jeden wiersz w ramach stosu. |
KLUCZ |
Blokada wiersza w indeks używany do ochrony klucz zakresów w transakcjach możliwy do serializacji. |
strona |
Do 8 kilobajtów (KB) strona w bazie danych, takich jak strona danych lub indeksu. |
fragment |
Grupa ciągłe osiem stron, takich jak strony danych lub indeksu. |
HoBT |
Sterty lub B-drzewo.Blokada ochrony B-drzewo (indeks) lub stron sterty danych w tabela, która nie ma indeks klastrowany. |
Liczba odczytów logiczne wykonywane podczas ostatniego wyzwalacz został wykonany. |
Całą tabela, w tym wszystkie dane i indeksy. |
PLIK |
Plik bazy danych. |
APLIKACJA |
Zasób określonej aplikacji. |
METADANE |
Metadane blokad. |
ALLOCATION_UNIT |
Jednostki przydziału. |
BAZY DANYCH |
Całą bazę danych. |
Uwaga
Blokady HoBT i tabela mogą mieć wpływ opcji LOCK_ESCALATION ALTER TABLE.