SQL Server Kill Spid

SQL Server Kill Spid
Spid- eller SQL -serverprosess -ID er en unik verdi tilordnet en økt når du kobler til en SQL Server -forekomst. Hvis du for eksempel bruker et verktøy som JetBrains Data Grip for å koble til SQL -serveren, tildeler SQL Server en unik sesjons -ID som inneholder frittstående minneplass og omfang. Dette betyr at SPID ikke kan samhandle med andre spids på serveren.

SQL Server bruker SPID -verdier under 50 for interne serverprosesser, mens hvilken som helst SPID over 51 (inkluderende) verdi er tilordnet brukerprosesser.

I denne guiden vil du forstå hvordan du får Spid -verdier i SQL Server og hvordan du kan drepe en transaksjon ved hjelp av Spid.

SQL Server Vis spid

I SQL Server er det forskjellige måter å få spiden til løpsprosessene. Denne guiden vil se på den vanligste og enkle å bruke.

sp_who (transact-sql)

SP_Who er en hjelperprosedyre som lar deg se brukerinformasjon, økter og SQL Server -forekomstprosesser. Ved å bruke denne prosedyren kan du filtrere for spesifikk informasjon, for eksempel brukernavnet og SPID -verdien.

Syntaksen er som vist:

sp_who [[@loginame =] 'Login' | Økt -ID | 'Aktiv']

Innloggingen refererer til sysnavnet som identifiserer en prosess for en spesifikk pålogging.

Økt -IDen er Spid -verdien til en spesifikk prosess koblet til SQL -serveren.

Eksempelbruk

Følgende kommandoer viser hvordan du bruker SP_Who -prosedyren i SQL Server.

Vis alle aktuelle prosesser

For å vise alle gjeldende prosesser, bruk spørringen som vist:

Bruk master;

Exec sp_who;

Spørringen over skal returnere informasjonen med kolonner som Spid, ECID, status, pålogging og mer.

Vis prosess for en bestemt bruker

For å få prosessene tilknyttet en bestemt bruker, kan vi spesifisere brukernavnet i spørringen som vist i eksemplet nedenfor:

Bruk master;

Exec sp_who 'csalem \ cs';

Kommandoen skal returnere prosessinformasjonen om innlogging av angitt innlogging. Et eksempelutgang er som vist:

@@ Spid

En annen metode du kan bruke for å få spiden til en prosess er å bruke @@ spid -funksjonen. Denne konfigurasjonsfunksjonen returnerer økt -ID for gjeldende prosess.

Eksempelbruk

Følgende eksempel viser hvordan du bruker @@ Spid for å hente informasjon om en spesifikk prosess.

Velg @@ Spid som 'ID',
system_user som 'login_name',
Bruker som 'brukernavn'

Spørringen returnerer spid-, påloggings- og brukernavnet. Eksempelutgang er som vist:

Aktivitetsmonitor

Du kan også bruke en grafisk metode for å se økt -ID -verdien for en spesifikk prosess. Start MS SQL Server Management Studio og høyreklikk på SQL Server-forekomsten. Åpen aktivitetsmonitor.

Klikk på kategorien Prosess for å vise spid, pålogging, databaser og mer informasjon. Informasjonen som vises av aktivitetsmonitoren er som vist:

SQL Server Kill Spid

Noen ganger kan du møte en spesifikk forekomst som kjører sakte, blokkerer andre prosesser eller bruker systemressurser. Du kan avslutte prosessen ved hjelp av spid.

Kill Spid -kommandoen lar deg spesifisere en spesifikk bruker SPID -verdi og avslutte prosessen. Når du har ringt kommandoen, vil SQL Server utføre en Rollback (angre endringer) -prosessen; kan derfor ta litt tid å avslutte en omfattende prosess.

Følgende viser syntaks for Kill Spid -kommandoen:

Kill Session Id [med statusOnly] | UOW [med statusOnly | Forpliktelse | Rollback]

Eksempelbruk

Pass økt -ID -verdien for å bruke Kill Spid -kommandoen (lær hvordan du får Spid -verdien over).

Kill 90;

Kommandoen ovenfor skal stoppe den spesifiserte prosessen.

For å få fremgangen til prosessoppsigelsen, kan du bruke med statysonly -argumentet som vist:

Drep 84 med status

Kommandoen ovenfor bør returnere fremdriften som:

MSG 6120, nivå 16, tilstand 1, linje 1
Statusrapporten kan ikke fås. Rollback -drift for prosess -ID 84 er ikke i gang.

Eksemplet nedenfor viser deg hvordan du avslutter en kjørende database -sikkerhetskopi ved hjelp av Kill Spid -kommandoen.

Start sikkerhetskopi som:

Backup Database [WideWorldimporters]
Til disk = n'c: \ programfiler \ Microsoft SQL Server \ MSSQL15.Mssqlserver \ mssql \ backup \ wwi_backup.bak '
Med noformat, navn = n '\ wwi_backup', komprimering, statistikk = 10;

Ved hjelp av Kill Spid -kommandoen, avslutt sikkerhetskopieringsprosessen.

Konklusjon

I denne artikkelen lærte du hvordan du jobber med SQL Server Session IDS. Ulike metoder for å hente Spid -verdien og avslutte en prosess ved å bruke SPID -verdien.