Udostępnij za pośrednictwem


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.