Blokowanie w aparat bazy danych
Locking is a mechanism used by the Microsoft SQL Server Database Engine 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 modyfikowanie danych, jej musi ochrony przed skutki inna transakcja modyfikowania tych samych danych.Transakcja wykonuje to zadanie przez żą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 transakcji jest na danych.Żadna transakcja nie może uzyskać blokada, które byłoby w konflikcie z trybem blokada już przyznane na tych danych do innej transakcji.Jeśli transakcja żądania trybu blokada, który powoduje konflikt z blokada, które już udzielono na tych samych danych w wystąpieniu programu Database Engine zatrzyma żądającego transakcji aż do chwili zwolnienia blokada pierwszej.
Transakcja modyfikuje fragment danych, posiada blokadę ochrona modyfikacji aż do zakończenia transakcji.Jak długo transakcji odczytać ręcznych blokad nabyte w celu ochrony operacji zależy od ustawień poziom izolacji transakcji.Wszystkie blokady przechowywane przez transakcję są zwalniane po zakończeniu transakcji (albo zatwierdzane lub toczy się ponownie).
Aplikacje nie zazwyczaj żądają blokad bezpośrednio.blokada są zarządzane wewnętrznie przez część Database Engine nazywany blokada menedżera. Gdy wystąpienie Database Engine procesy Transact-SQL Instrukcja, Database Engine procesor kwerend określa zasoby, które mają być dostępne. Procesor kwerend określa, jakiego typu blokady są wymagane do ochrony poszczególnych zasób w zależności od typu dostępu i ustawienie poziom izolacji transakcji.Procesor kwerend następnie żąda blokada odpowiednie od Menedżera blokada.Menedżer blokad udziela blokad występują nie konflikty blokada przechowywane przez inne transakcje.
Poniższa tabela zawiera listę tematów opisujących główne pojęcia blokowania.
Temat |
Description |
---|---|
Blokady mogą być wymagane dla różnych typów zasobów, takich jak wiersze, strony, indeksów, tabel lub baz danych.Niektóre operacje wymagają wprowadzania blokad na wielu poziomach rozdrobnienia, tworzących hierarchię blokad. |
|
Blokady mają różne tryby, które określają poziom dostępu ma inne transakcje do zablokowanej zasób. |
|
Wielu transakcji może uzyskać blokad jednocześnie dla tego samego zasób, jeśli ich trybów blokada są zgodne.Jeżeli transakcja trybu blokada, który powoduje konflikt z istniejące blokada, transakcji jest wstrzymana do momentu pierwszego blokada zostaje zwolniony. |
|
Blokowanie zakres kluczy umożliwia transakcji używany jest poziom izolacji można zapobiec fantomu wstawia i usuwa. |
|
Jeśli transakcja pobrania dużej liczby blokad wiersza lub strona, Database Engine może udzielić blokada tabela, a następnie zwolnij wszystkie blokada niższego poziom, aby zminimalizować obciążenie blokada. |
|
The Database Engine can dynamically choose the poziom of blokada ziarnistość based on the optimizer's estimate of the number of rows a Transact-SQL instrukcja will reference. |
|
The Database Engine and its associated APIs provide several mechanisms for displaying information about the locks currently held in an wystąpienie or a database. |
|
Zakleszczenia występują wtedy, gdy dwa zadania zablokować z sobą trwale, ponieważ każde zadanie jest blokada do zasób, wymagane przez inne zadania. |
See Also