SQL Server używa wartości SPID poniżej 50 dla procesów serwerów wewnętrznych, podczas gdy każda wartość SPID powyżej 51 (włączająca) jest przypisana do procesów użytkownika.
W tym przewodniku zrozumiesz, jak uzyskać wartości SPID na SQL Server i jak możesz zabić transakcję za pomocą jej paju.
SQL Server pokazuje SPID
Na SQL Server istnieją różne sposoby uzyskania puchu uruchomionych procesów. Ten przewodnik przyjrzy się najczęstszym i łatwym w użyciu.
SP_WHO (Transact-SQL)
SP_WHO to procedura pomocnicza, która pozwala przeglądać informacje o użytkownikach, sesje i procesy instancji SQL Server. Korzystając z tej procedury, możesz filtrować szczegółowe informacje, takie jak nazwa użytkownika i wartość SPID.
Składnia jest jak pokazana:
sp_who [[@loginame =] „login” | Identyfikator sesji | „Active”]Login odnosi się do sysname, która identyfikuje proces określonego logowania.
Identyfikator sesji jest wartością SPID do określonego procesu podłączonego do serwera SQL.
Przykładowe użycie
Poniższe polecenia pokazują, jak korzystać z procedury SP_WHO na serwerze SQL.
Pokaż wszystkie obecne procesy
Aby wyświetlić wszystkie bieżące procesy, użyj zapytania, jak pokazano:
Użyj Master;Powyższe zapytanie powinno zwrócić informacje z kolumnami takimi jak SPID, ECID, status, nazwa logowania i więcej.
Pokaż proces dla konkretnego użytkownika
Aby uzyskać procesy powiązane z konkretnym użytkownikiem, możemy określić nazwę użytkownika w zapytaniu, jak pokazano w poniższym przykładzie:
Użyj Master;Polecenie powinno zwrócić informacje o procesie o logowaniu SET. Przykładem jest to, jak pokazano:
@@ SPID
Inną metodą, której możesz użyć do uzyskania SPID procesu, jest użycie funkcji @@ SPID. Ta funkcja konfiguracji zwraca identyfikator sesji bieżącego procesu.
Przykładowe użycie
Poniższy przykład pokazuje, jak korzystać z @@ SPID, aby pobrać informacje o określonym procesie.
Wybierz @@ SPID jako „id”,Zapytanie zwraca SPID, Nazwa logowania i nazwy użytkownika. Przykładowe dane wyjściowe to jak pokazano:
Monitor aktywności
Możesz także użyć metody graficznej, aby wyświetlić wartość identyfikatora sesji dla określonego procesu. Uruchom MS SQL Server Management Studio i kliknij prawym przyciskiem myszy w instancji SQL Server. Otwarta monitor aktywności.
Kliknij kartę Process, aby pokazać SPID, logowanie, bazy danych i więcej informacji. Informacje wyświetlane przez monitor aktywności są takie, jak pokazano:
SQL Server Zabij SPID
Czasami możesz napotkać określoną instancję działającą powoli, blokującą inne procesy lub konsumowanie zasobów systemowych. Możesz zakończyć proces za pomocą jego paju.
Polecenie Kill Spid pozwala określić określoną wartość SPID użytkownika i zakończyć proces. Po wywołaniu polecenia SQL Server wykona proces ROLLBACK (Zmiany Undo); stąd może zająć trochę czasu, aby zakończyć rozległy proces.
Poniżej pokazuje składnię polecenia Kill Spid:
KILL identyfikator sesji [z statusonly] | UOW [z statusonly | Zatwierdzić | Wycofanie]Przykładowe użycie
Przekaż wartość identyfikatora sesji, aby użyć polecenia Kill Spid (naucz się uzyskać powyższą wartość SPID).
Zabij 90;Powyższe polecenie powinno zatrzymać określony proces.
Aby uzyskać postęp rozwiązania procesu, możesz użyć argumentu ze Statysonly, jak pokazano:
Zabij 84 z statusonly;Powyższe polecenie powinno zwrócić postęp jako:
MSG 6120, poziom 16, stan 1, linia 1Poniższy przykład pokazuje, jak zakończyć działającą kopię zapasową bazy danych za pomocą polecenia Kill Spid.
Zacznij zapasować jako:
Baza danych kopii zapasowej [WideWorldImporters]Korzystając z polecenia Kill Spid, zakończ proces tworzenia kopii zapasowych.
Wniosek
W tym artykule nauczyłeś się pracować z identyfikatorami sesji SQL Server. Różne metody pobierania wartości SPID i zakończenia procesu za pomocą wartości SPID.