Customizing Locking for an Index

The SQL Server Database Engine uses a blokowanie dynamiczne strategy that automatically chooses the best locking ziarnistość for queries in most cases. Firma Microsoft zaleca, aby zastąpić domyślne blokowanie poziomy, które mają stron i wierszy blokowania, chyba że tabela lub indeksu wzorców dostępu są również rozpoznawanych i spójny i rozwiązać problem rywalizacji zasób.Zastępowanie poziom blokowania może znacznie utrudniają jednocześnie dostęp do tabela lub indeksu.Na przykład określając tylko poziom tabela blokad w dużej tabela, że dostęp użytkowników silnie może spowodować wąskie gardła, ponieważ użytkownicy muszą czekać na blokada poziomie tabela mają być udostępnione przed uzyskaniem dostępu do tabela.

Istnieją przypadki kilka, gdzie brak zezwolenia strona lub wiersza blokowania może być korzystne, jeśli desenie dostępu są również rozpoznawanych i spójne.Na przykład aplikacja bazy danych używa tabela odnośników, który jest aktualizowany co tydzień w procesie partia.Równoczesne czytniki dostępu do tabela z udostępnionego blokady (S) i tydzień partia aktualizacji uzyskuje dostęp do tabela z blokada wyłączności (X).Wyłączenie strona i blokowania w tabela Wiersz zmniejsza blokowaniem obciążenie przez cały tydzień pozwalając czytniki jednocześnie dostępu do tabela za pomocą udostępnionego tabela blokad.Podczas tryb wsadowy serii, to można wykonać aktualizację wydajnie ponieważ uzyska blokada wyłączności tabela.

Wyłączenie strona i blokowanie wiersza może lub nie jest dopuszczalne ponieważ będzie tygodniowy aktualizacji wsadowych blok równoczesnych czytniki dostęp do tabela podczas wykonywania aktualizacji.Jeśli zadanie partia zmienia tylko kilka wierszy lub stron, można zmienić poziom blokowania umożliwiające wiersza lub strona poziom blokowania, który pozwoli na czytanie z tabela bez blokowania innych sesji.Jeśli zadanie partia ma dużą liczbę aktualizacji, uzyskiwania wyłącznego blokada w tabela może być najlepszym sposobem zapewnienia tryb wsadowy zakończy wydajnie.

Od czasu do czasu Zakleszczenie występuje wtedy, gdy dwa równoczesne wykonywanie operacji nabycia blokad wiersza dla tej samej tabela i następnie zablokować, ponieważ oba należy zablokować strona.Brak zezwolenia blokad wiersza wymusza jedną z operacji oczekiwania, unikając zakleszczenie.

ziarnistość blokowania używane na indeks może być zestaw za pomocą instrukcji CREATE INDEX i ALTER indeks.Ustawienia blokada odnoszą się do strony indeksu i tabela stron.Ponadto instrukcje CREATE tabela i instrukcji ALTER tabela zestaw blokowanie ziarnistość na ograniczenia klucz podstawowy i unikatowa.Do tyłu zgodność, sp_indexoption systemowa procedura składowana można również ustawić ziarnistość.Aby wyświetlić bieżące opcję blokowania w danym indeksie, należy użyć funkcja INDEXPROPERTY.Blokady z poziom strona, blokowania poziom wiersza lub kombinację z blokowaniem poziom strona i poziom wiersza może być niedopuszczalne w danym indeksie.

Niedozwolone blokad

Dostęp do indeksu

Poziom strona

Blokady tabela poziomie i poziom wiersza

Poziom wiersza

Blokady poziom tabela i poziom strona

Poziom strona i poziomu wiersza

Blokowania poziom tabela