| Termin | Definicja |
|---|---|
| Sp_lock | sp_lock to starsza procedura systemowa wyświetlająca aktywne blokady w instancji, zastąpiona widokami sys.dm_tran_locks. Sp_lock jako starszy interfejs diagnostyczny SQL Server
Procedura należy do historycznych mechanizmów diagnostycznych i nie powinna być traktowana jako podstawowe narzędzie w nowym kodzie administracyjnym. Jej wynik jest tabelaryczny, ale zakres prezentowanych informacji oraz sposób ich powiązania z konkretnym zapytaniem jest ograniczony. Sam fakt wyświetlenia blokady nie wyjaśnia jeszcze, które polecenie ją założyło, jak długo trwa transakcja ani czy dana sesja rzeczywiście blokuje wykonanie innej operacji. Jak interpretować wynik proceduryWywołanie bez dodatkowego identyfikatora służy do przeglądu blokad dotyczących wielu sesji. W zależności od wersji i kontekstu wykonania wynik może zawierać między innymi identyfikator procesu serwera, identyfikator bazy danych, identyfikator obiektu, typ zasobu, tryb blokady oraz stan blokady. Identyfikator procesu, często określany jako SPID, pozwala powiązać rekord blokady z konkretną sesją SQL Server. Tryb blokady opisuje rodzaj uzyskanego dostępu lub zamiaru dostępu. Przykładowo blokada współdzielona jest typowa dla odczytu, a blokada wyłączna wiąże się z modyfikacją danych. SQL Server stosuje również blokady zamiaru, które sygnalizują planowane blokady na niższym poziomie hierarchii zasobów. Ocena konfliktu wymaga więc uwzględnienia zarówno typu zasobu, jak i trybu blokady; nie każda blokada widoczna w wyniku oznacza błąd lub bezpośrednie oczekiwanie. Wynik Sys.dm_tran_locks i nowsza ścieżka analizyWspółczesna diagnostyka blokad w SQL Server opiera się przede wszystkim na dynamicznym widoku zarządzania
Takie zestawienie oddziela trzy różne sytuacje: sesję posiadającą blokadę, sesję oczekującą na blokadę oraz sesję, która wykonuje długą transakcję i przez to utrzymuje zasoby dłużej, niż oczekuje aplikacja. Samo znalezienie blokady nie uzasadnia zabicia procesu. Najpierw należy ustalić właściciela transakcji, rodzaj operacji, zależności między sesjami oraz ryzyko wycofania pracy po przerwaniu połączenia. Ograniczenia użycia podczas rozwiązywania blokadPrzy analizie problemu nie należy utożsamiać każdego opóźnienia z blokadą wykrytą przez Istotne znaczenie ma poziom uprawnień konta wykonującego diagnostykę. Widoki dynamicznego zarządzania mogą zwracać pełniejsze informacje użytkownikowi posiadającemu odpowiednie uprawnienia serwerowe, natomiast konto o ograniczonym dostępie może otrzymać niepełny obraz aktywności innych sesji. Brak rekordu w ograniczonym wyniku nie musi więc oznaczać braku blokady na całej instancji. W środowisku SQL Server |