SQL Server Kill Spid

SQL Server Kill Spid
Die SPID- oder SQL -Server -Prozess -ID ist ein eindeutiger Wert, der einer Sitzung zugewiesen wird, wenn sie eine SQL -Serverinstanz herstellt. Wenn Sie beispielsweise ein Tool wie JetBrains Data Grip verwenden, um eine Verbindung zum SQL -Server herzustellen, weist der SQL -Server eine eindeutige Sitzungs -ID zu. Dies bedeutet, dass der Spid nicht mit anderen Spids auf dem Server interagieren kann.

SQL Server verwendet SPID -Werte unter 50 für interne Serverprozesse, während jeder SPID über 51 (inklusive) Wert Benutzerprozesse zugewiesen wird.

In diesem Handbuch verstehen Sie, wie Sie Spid -Werte in SQL Server erhalten und wie Sie eine Transaktion mit ihrer SPID abtöten können.

SQL Server Show SPID anzeigen

In SQL Server gibt es verschiedene Möglichkeiten, die Spid der laufenden Prozesse zu erhalten. Dieser Leitfaden wird die häufigste und einfachste Verwendung betrachten.

SP_WHO (Transact-SQL)

Das SP_WO ist eine Helfer -Prozedur, mit der Sie Benutzerinformationen, Sitzungen und die SQL -Serverinstanzprozesse anzeigen können. Mit dieser Prozedur können Sie spezifische Informationen wie den Benutzernamen und den Spid -Wert filtern.

Die Syntax ist wie gezeigt:

sp_who [[@loginame =] 'login' | Sitzungs -ID | 'Aktiv']

Das Login bezieht sich auf den Systemnamen, der einen Prozess für eine bestimmte Anmeldung identifiziert.

Die Sitzungs -ID ist der SPID -Wert für einen bestimmten Prozess, der mit dem SQL -Server verbunden ist.

Beispiel Verwendung

Die folgenden Befehle zeigen, wie die SP_WHO -Prozedur in SQL Server verwendet wird.

Zeigen Sie alle aktuellen Prozesse an

Verwenden Sie die Abfrage wie gezeigt, um alle aktuellen Prozesse anzuzeigen:

Verwenden Sie Master;
GEHEN
Exec sp_who;
GEHEN

Die obige Abfrage sollte die Informationen mit Spalten wie Spid, Ecid, Status, Loginame und mehr zurückgeben.

Prozess für einen bestimmten Benutzer anzeigen

Um die mit einem bestimmten Benutzer verknüpften Prozesse zu verknüpfen, können wir den Benutzernamen in der Abfrage angeben, wie im folgenden Beispiel gezeigt:

Verwenden Sie Master;
GEHEN
Exec sp_who 'csalem \ cs';
GEHEN

Der Befehl sollte die Prozessinformationen zum festgelegten Login zurückgeben. Ein Beispielausgang ist wie gezeigt:

@@ spid

Eine andere Methode, mit der Sie die Spid eines Prozesses abrufen können. Diese Konfigurationsfunktion gibt die Sitzungs -ID des aktuellen Prozesses zurück.

Beispiel Verwendung

Das folgende Beispiel zeigt, wie die @@ spid verwendet wird, um Informationen zu einem bestimmten Prozess abzurufen.

Wählen Sie @@ spid als "id",
System_user als 'login_name',
Benutzer als "Benutzername"

Die Abfrage gibt den Spid, den Loginamen und den Benutzernamen zurück. Beispielausgabe ist wie gezeigt:

Aktivitätsmonitor

Sie können auch eine grafische Methode verwenden, um den Sitzungs -ID -Wert für einen bestimmten Prozess anzuzeigen. Starten Sie das MS SQL Server Management Studio und klicken Sie mit der rechten Maustaste auf die SQL Server-Instanz. Offener Aktivitätsmonitor.

Klicken Sie auf die Registerkarte Prozess, um SPID, Login, Datenbanken und weitere Informationen anzuzeigen. Die vom Aktivitätsmonitor angezeigten Informationen sind wie gezeigt:

SQL Server Kill Spid

Manchmal begegnen Sie auf eine bestimmte Instanz, die langsam läuft, andere Prozesse blockiert oder Systemressourcen verbraucht. Sie können den Prozess mit seinem Spid beenden.

Mit dem Befehl Kill Spid können Sie einen bestimmten Benutzer -Spid -Wert angeben und den Prozess beenden. Sobald Sie den Befehl anrufen, führt SQL Server einen Rollback -Prozess (rückgängige Änderungen) aus. Daher kann es einige Zeit dauern, um einen umfangreichen Prozess zu beenden.

Das Folgende zeigt die Syntax des Kill Spid -Befehls:

Kill Sitzungs -ID [mit StatusOnly] | Uow [mit StatusOnly | Commit | Rollback]

Beispiel Verwendung

Übergeben Sie den Sitzungs -ID -Wert, um den Befehl Kill Spid zu verwenden (erfahren Sie, wie Sie den SPID -Wert oben erhalten).

Töte 90;

Der obige Befehl sollte den angegebenen Prozess stoppen.

Um den Fortschritt der Prozessabschließung zu erzielen, können Sie das mit statysonly Argument wie gezeigte Argument verwenden:

Töte 84 mit StatusOnly;

Der obige Befehl sollte den Fortschritt als:

MSG 6120, Stufe 16, Zustand 1, Zeile 1
Der Statusbericht kann nicht erhalten werden. Der Rollback -Betrieb für die Prozess -ID 84 ist nicht im Gange.

Das folgende Beispiel zeigt Ihnen, wie Sie eine laufende Datenbanksicherung mit dem Befehl Kill Spid beenden.

Backup beginnen als:

Sicherungsdatenbank [Wideworldimporters]
Zu disk = n'c: \ Programmdateien \ Microsoft SQL Server \ MSSQL15.MSSQLServer \ MSSQL \ Backup \ wwi_backupup.Bak '
Mit NOFORMAT, name = n '\ wwi_backup', Komprimierung, Statistiken = 10;
GEHEN

Beenden Sie mit dem Befehl Kill Spid den Sicherungsprozess.

Abschluss

In diesem Artikel haben Sie gelernt, wie man mit SQL Server -Sitzungs -IDs arbeitet. Verschiedene Methoden zum Abrufen des SPID -Werts und zum Beenden eines Vorgangs mit dem Spid -Wert.