SQL Server Zabij SPID

SQL Server Zabij SPID
Identyfikator procesu SPID lub SQL Server to unikalna wartość przypisana do sesji podczas łączenia się z instancją SQL Server. Na przykład, jeśli używasz narzędzia, takiego jak uchwyt danych jetbrains do połączenia z serwerem SQL, SQL Server przypisuje unikalny identyfikator sesji, który zawiera samodzielną przestrzeń i zakres pamięci. Oznacza to, że SPID nie może wchodzić w interakcje z innymi SPIDS na serwerze.

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;
IŚĆ
Exec sp_who;
IŚĆ

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;
IŚĆ
Exec sp_who 'csalem \ cs';
IŚĆ

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”,
System_user jako „login_name”,
Użytkownik jako „nazwa użytkownika”

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 1
Raport o stanie nie można uzyskać. Operacja cofania dla procesu ID 84 nie jest w toku.

Poniż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]
Do DISK = N'C: \ Program Files \ Microsoft SQL Server \ MSSQL15.Mssqlserver \ mssql \ backup \ wwi_backup.bak '
Z NOFORMAT, name = n '\ wwi_backup', kompresja, stats = 10;
IŚĆ

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.