Tryby Lock
The Microsoft Aparat baz danych programu SQL Server locks resources using different lock modes that determine how the resources can be accessed by concurrent transactions.
W poniższej tabela przedstawiono tryby blokada zasób Aparat baz danych zastosowań.
Tryb blokowania |
Opis |
---|---|
Udostępnione (S) |
Używane dla operacji odczytu, które nie zmienić lub zaktualizować danych, takich jak instrukcja SELECT. |
Aktualizacja (U) |
Używany na zasoby, które mogą być aktualizowane.Zapobiega wspólny formularz zakleszczenie, gdy wiele sesji są odczytu, blokowania i potencjalnie później aktualizowania zasobów. |
Wyłączne (X) |
Używane dla operacji modyfikacji danych, takich jak INSERT, UPDATE lub DELETE.Zapewnia, że wielu aktualizacji nie można dokonać tego samego zasób w tym samym czas. |
Metoda konwersji |
Używany do ustanawiania hierarchii blokada.Typy konwersji blokady: zamiarem udostępnione (IS) zamiarem wyłączności (IX) i udostępnionych z zamiarem wyłączności (sześć). |
Schemat |
Używane podczas wykonywania operacji zależy od schematu tabela.Typy blokad schematu: modyfikacja schematu (Sch-M) i stabilność schematu (Sch-S). |
Aktualizacja zbiorcza (BU) |
Używana, jeśli luzem kopiowania danych do tabela oraz TABLOCK podano wskazówki. |
Zakres klucza |
Chroni zakres wierszy odczytać przez kwerendę, używając serializować poziom izolacji transakcji.Zapewnia, że inne transakcje nie może wstawić wiersze, które kwalifikowałyby kwerend dotyczących transakcji serializować kwerendy zostały uruchomione ponownie. |
Blokady współużytkowane
Blokady współużytkowane (S) umożliwiają jednoczesnych transakcji do odczytu (wybór) zasób w obszarze Współbieżność pesymistyczna kontroli.Aby uzyskać więcej informacji, zobacz Typy sterowania współbieżnością.Inne transakcje nie mogą modyfikować dane, gdy istnieje blokady (S) udostępnionego zasób.Blokady współużytkowane (S) do zasób są zwalniane natychmiast po zakończeniu operacji odczytu, chyba, że poziom izolacji transakcji jest zestaw Odczyt powtarzalny lub wyższym, lub blokowania wskazówka jest używany do zachowywania blokady współużytkowane (S) czas trwania transakcji.
Aktualizacja blokad
Blokada aktualizacji (U) zapobiega wspólny formularz zakleszczenie.Odczyt powtarzalny lub transakcji serializować transakcji odczytuje dane nabywającej blokadę (S) zasób (strona lub wierszy) i następnie modyfikuje danych wymaga konwersji blokada blokada wyłączności (X).Dwie transakcje nabycia blokad trybu udostępnionego zasób, próba aktualizacji danych jednocześnie jedną transakcję próby konwersji lock blokada wyłączności (X).Konwersja blokady współużytkowane tryb do wyłączności musi czekać, ponieważ blokada na wyłączność dla jednej transakcji nie jest zgodny z blokadą trybu udostępnione innych transakcji; blokada oczekiwania występuje.Druga transakcja próbuje uzyskać blokada wyłączności (X), jego aktualizacji.Ponieważ zarówno transakcji jest konwertowane na wyłączne (blokad X), są one każdego Oczekujący dla innych transakcji zwolnić blokada jej udostępnione w trybie Zakleszczenie występuje.
Aby tego uniknąć potencjalnego zakleszczenie, używane są blokady aktualizacji (U).Tylko jedną transakcję można uzyskać blokada aktualizacji (U) do zasób na czas.Jeśli transakcja modyfikuje zasób, blokada aktualizacji (U) jest konwertowany na blokadę wyłączności (X).
Blokada wyłączności
Blokada wyłączności (X) uniemożliwić dostęp do zasób przez jednoczesnych transakcji.Z blokada wyłączności (X) inne transakcje nie można zmodyfikować danych; Przeczytaj operacji może odbywać się jedynie przy użyciu wskazówka NOLOCK lub odczytać poziom izolacji nieprzydzielonych.
Instrukcje modyfikacji danych, takie jak INSERT, UPDATE i DELETE połączyć oba modyfikacji i operacji odczytu.Najpierw instrukcja wykonuje operacje odczytu uzyskanie danych przed wykonaniem operacji wymaganych modyfikacji.Instrukcje modyfikacji danych, dlatego zazwyczaj żądanie zarówno udostępnionych blokady i wyłącznej blokady.Na przykład instrukcja UPDATE może zmodyfikować wiersze w tabela na podstawie łączyć z innej tabela.W takim przypadek blokady współużytkowane żądania instrukcja UPDATE wierszy odczytu tabela łączyć, oprócz prośby o wyłączności blokad dla zaktualizowanych wierszy.
Blokady konwersji
Aparat baz danych Używa konwersji blokad ochrony blokadę (S) lub blokadę wyłączności (X) zasób niżej w hierarchii blokada.blokada konwersji są o nazwie blokad konwersji, ponieważ zostały one nabyte przed blokada według niższej poziomi dlatego sygnał zamiarem umieścić blokad w niższej poziom.
Konwersji blokady używane w dwóch celach:
Zapobiegania inne transakcje modyfikację wyższego poziom zasób w sposób stałaby się blokada na niższym poziomie.
Aby zwiększyć wydajność Aparat baz danych Wykrywanie konfliktów blokada poziom wyższym ziarnistość.
Na przykład udostępnionego blokada zamierzona wnosi się w tabela przed udostępniony poziom blokady (S) są wymagane na stronach lub wierszy w tabela.Ustawienie blokada zamierzona w tabela poziom uniemożliwia innej transakcji z później pobieranie wyłącznego (X) blokadę tabela zawierającej tej strona.Zamiarem blokad zwiększyć wydajność, ponieważ Aparat baz danych sprawdza konwersji blokad tylko poziom tabela, aby określić transakcji można bezpiecznie uzyskać blokada w tej tabela.Spowoduje to usunięcie wymogu zbada każdy wiersz lub strona blokada w tabela, aby określić, jeśli transakcja może blokada całą tabela.
Blokady konwersji obejmują zamiarem udostępnione (IS) zamiarem wyłączności (IX) i udostępnionych z zamiarem wyłączności (sześć).
Tryb blokowania |
Opis |
---|---|
Zamiarem udostępnione (IS) |
Chroni nabyte lub żądanej blokady współużytkowane niżej w hierarchii zasobów niektóre (ale nie wszystkie). |
Zamiarem wyłączności (IX) |
Chroni żądanych lub nabyte wyłącznej blokady niżej w hierarchii zasobów niektóre (ale nie wszystkie).IX jest podzbiorem IS, a także chroni żądanie blokady współużytkowane na dolnym poziom zasobów. |
Udostępnione z zamiarem wyłączności (sześć) |
Chroni nabyte lub żądanej blokady współużytkowane wszystkich zasobów niżej w hierarchii i zamiarów blokad wyłącznych na niektóre (ale nie wszystkie) niższy poziom zasobów.Równocześnie blokad jest u góry -poziom zasób są dozwolone.Na przykład pobieranie 6 blokada w tabela również nabywa wyłączne konwersji blokadas na stronach modyfikowany i wyłącznie blokadas na zmodyfikowanych wierszy.Może istnieć tylko jeden sześć zablokować każdego zasobu w jednym czas, zapobiegające zasobów przez inne transakcje, chociaż innych transakcji można odczytać zasobów niżej w hierarchii uzyskując jest blokowania poziom tabela. |
Aktualizacja konwersji (IU) |
Chroni blokad nabyte lub żądanej aktualizacji wszystkich zasobów niższe w hierarchia elementów członkowskich.Blokady IU są używane tylko strona zasobów.Blokady IU są konwertowane na IX blokad, jeśli odbywa się operacji aktualizacji. |
Udostępniona aktualizacja konwersji (SIU) |
Połączenie s i IU blokady z nabycia te blokady oddzielnie i jednocześnie obu blokują.Na przykład transakcji wykonuje kwerendę z wskazówka PAGLOCK, a następnie wykonuje operacji aktualizacji.Kwerendy o wskazówkę PAGLOCK nabywa s blokada i IU blokada nabywa operacji aktualizacji. |
Aktualizacja wyłączne konwersji (UIX) |
Kombinacja u i IX blokady z nabycia te blokady oddzielnie i jednocześnie obu blokują. |
Blokady schematu
Aparat baz danych Przez blokad (Sch-M) modyfikacji schematu podczas tabela definicja danych operacji języka (DDL), takie jak dodanie kolumna lub usuwaniem tabela.Podczas czas że jest przechowywana, blokada Sch-M zapobiega równoczesny dostęp do tabela.Oznacza to, że blokada Sch-M blokuje wszystkie operacje zewnętrznych aż do chwili zwolnienia blokady.
Niektóre język edycji danych operacji (DML), takich jak obcinania tabela stosować Sch-M blokady, aby uniemożliwić dostęp do tabel dotyczy operacji jednoczesnych.
Aparat baz danych Używa blokad stabilności (Sch-S) schematu podczas kompilowania i wykonywania kwerend.blok SCH-S nie należy blokować wszystkie blok transakcyjnych, włączając blokad wyłączności (X).Dlatego inne transakcje, łącznie z tymi x blokad dla tabela, nadal uruchamiane podczas kompilowania kwerendy.Jednakże równoczesne operacje DDL i równoczesne operacje DML nabyć blokady Sch-M, nie można wykonać w tabela.
Zbiorcza aktualizacja blokad
Aparat baz danych Używa zbiorczej aktualizacji (BU) blokad podczas zbiorczego kopiowania danych do tabeli, a następnie TABLOCK podano wskazówki lub blokada tabeli zbiorczej załadować opcja Tabela jest zestaw za pomocą sp_tableoption.Zbiorcza aktualizacja (BU) blokad umożliwiają wielu wątków do równoczesnego luzem ładowania danych do tej samej tabela, uniemożliwiając innym procesom, które nie są ładowanie zbiorcze danych z dostęp do tabela.
Zakres klucz blokad
Zakres klucz blokad Chroń zakres wierszy niejawnie zawarte w zestaw rekordów odczytywany przez Transact-SQL instrukcja podczas używania poziom izolacji transakcji możliwy do serializacji.Blokowanie zakres klucz uniemożliwia fantomu odczytów.Poprzez ochronę zakresy kluczy między wierszami, uniemożliwia także fantomu wstawienia lub usunięcia do zestaw rekordów, dostęp do transakcji.