Kiedy program SQL Server nabywa blokady?


10

Znaleziona tutaj lista poziomów izolacji w SQL Server stwierdza , że blokady zapisu nabyte w ramach transakcji są zachowywane do końca transakcji. Jednak nie wspomina nic o tym, kiedy te zamki są nabywane.

Czy blokady są domyślnie nabywane na początku transakcji, czy tylko wtedy, gdy są potrzebne? Jeśli to ostatnie jest prawdą, to czy w przypadku dużych transakcji korzystne byłoby wykonywanie operacji zapisu tak późno, jak to możliwe, aby zminimalizować czas utrzymywania blokad X?

Odpowiedzi:


5

Czy blokady są domyślnie nabywane na początku transakcji, czy tylko wtedy, gdy są potrzebne?

Zamki są nabywane bezpośrednio przed wystąpieniem odczytu lub zapisu. W zależności od stopnia szczegółowości blokowania wybranego przez silnik pamięci, blokady można uzyskać na poziomie wiersza, strony, partycji lub obiektu (tabeli).

Jeśli to ostatnie jest prawdą, to czy w przypadku dużych transakcji korzystne byłoby wykonywanie operacji zapisu tak późno, jak to możliwe, aby zminimalizować czas utrzymywania blokad X?

Tak, może być korzystne dla współbieżności, w zależności od poziomu izolacji używanego przez współbieżne transakcje.

Powiązana lektura:

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.