KILL (Transact-SQL)

Kończy proces użytkownika, który jest oparty na identyfikator sesja (SPID w SQL Server 2000 i starszych) lub jednostki pracy (UOW).Jeśli określonej sesja , identyfikator lub UOW ma dużo pracy do cofnąć, NISZCZĄCY instrukcja może potrwać pewien czas , szczególnie w przypadku, gdy obejmuje wycofywanie transakcji długa.

W SQL Server 2000 i nowsze wersje "zabicia" mogą być używane do zakończenia połączenia normalnego, który kończy wewnętrznie transakcji, które są skojarzone z określonej sesja identyfikatora.instrukcja można również zakończyć oddzielony i w stanie wątpliwości transakcji rozproszonych po Microsoft Distributed Transaction Coordinator (MS DTC) jest w użyciu.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

KILL { session ID | UOW } [ WITH STATUSONLY ] 

Argumenty

  • session ID
    To identyfikator sesja procesu, aby zakończyć.session IDjest unikatową liczbą całkowitą (int) przypisane do każdego połączenia użytkownika po nawiązaniu połączenia.Wartość Identyfikatora sesja jest powiązane z połączenia na czas trwania połączenia.Po zakończeniu połączenia wartość całkowita jest zwalniany i może zostać przypisany do nowego połączenia.

    Użyj NISZCZĄCEGO session ID zakończyć regularne transakcje nondistributed i rozproszonych, które są skojarzone z określonej sesja identyfikatora.

  • UOW
    Identyfikuje jednostkę z pracy identyfikator (UOW) transakcji rozproszonych.UOWjest identyfikatorem GUID, który można otrzymać z request_owner_guid kolumna sys.dm_tran_locks dynamiczny widok zarządzania.UOWPonadto można uzyskać z dziennik błędów lub za pośrednictwem Monitora usługi MS DTC.Więcej informacji dotyczących monitorowania transakcji rozproszonych można znaleYć w dokumentacji usługi MS DTC.

    Użyj NISZCZĄCEGO UOW zakończyć oddzielony transakcji rozproszonych.Transakcje te nie są skojarzone z Identyfikatorem wszelkich rzeczywistych sesja , ale zamiast tego są skojarzone sztucznie identyfikator sesja = "-2".Ten identyfikator sesja ułatwia identyfikację transakcji oddzielonych przez badanie ID sesja kolumna w sys.dm_tran_locks, sys.dm_exec_sessions, lub sys.dm_exec_requests dynamiczne zarządzanie widokami.

  • Z STATUSONLY
    Generuje sprawozdanie okresowe dotyczące określonego session ID lub UOW , przy czym przywracana jest z powodu wcześniejszych NISZCZĄCY instrukcja.KASUJ Z STATUSONLY nie kończy lub wycofać session ID lub UOW; polecenie wyświetla tylko bieżącym postępem wycofywania.

Uwagi

"Zabicia" jest powszechnie używany do zakończenia procesu, który blokuje innych ważnych procesów za pomocą blokad lub proces, który wykonuje kwerendę, która korzysta z zasobów systemu niezbędne.Procesy systemowe i procesów uruchomionych rozszerzona procedura składowana nie może zostać zakończona.

Przy NISZCZĄCY bardzo ostrożnie, szczególnie uruchomionych procesów krytycznych.Nie można skasować własny proces.Inne procesy, które nie powinny zniszczenie obejmują:

  • OCZEKUJĄCE NA POLECENIA

  • TRYB UŚPIENIA W PUNKCIE KONTROLNYM.

  • OPÓŹNIENIEM

  • ZABLOKUJ MONITORA

  • OBSŁUGA SYGNAŁU

Identyfikator SPID @@ służy do wyświetlania wartości Identyfikatora sesja dla bieżącej sesja.

Aby uzyskać raport aktywnej sesja wartości identyfikatorów, mogą wysyłać kwerendy session_id kolumna sys.dm_tran_locks, sys.dm_exec_sessions, i sys.dm_exec_requests dynamiczne zarządzanie widokami.Można także wyświetlić SPID kolumna jest zwracany przez sp_who systemu procedura składowana.Jeśli Trwa wycofywanie dla określonego identyfikatora SPID, cmd kolumna w sp_who zestaw wyników dla tego identyfikatora SPID wskaże KILLED / ROLLBACK.

Podczas określonego połączenia blokada bazy danych zasób i blokuje postępu innego połączenia, identyfikator sesja połączenia blokującego pokazuje w blocking_session_id kolumna sys.dm_exec_requests lub blk kolumna zwracanych przez sp_who.

Polecenie "zabicia" można rozwiązać transakcje rozproszone w stanie wątpliwości.Transakcje te są nie rozwiązane transakcje rozproszone, spowodowane przez niezaplanowane ponowne uruchomienia serwera bazy danych lub koordynatorem MS DTC.Aby uzyskać więcej informacji na temat wątpliwych transakcji zobacz "Commit dwufazowy proces" sekcja w Używając zaznaczonych transakcji (modelu odzyskiwania pełny).

Korzystanie Z STATUSONLY

KASUJ Z STATUSONLY generuje raport tylko wtedy, gdy identyfikator sesja lub UOW jest obecnie Trwa wycofywanie z powodu poprzedniej NISZCZĄCYsession ID|UOW instrukcja.Sprawozdanie z postępu Państwa kwota Wycofywanie ukończone (w procentach) i długość szacowany pozostały czas (w sekundach), w następującej formie:

Spid|UOW <xxx>: Transaction rollback in progress. Estimated rollback completion: <yy>% Estimated time left: <zz> seconds

Jeśli wycofywanie identyfikator sesja lub UOW zakończył się, kiedy "zabicia"session ID|UOW instrukcja jest wykonana Z STATUSONLY, lub jeśli nie identyfikator sesja lub UOW jest przywracana jest, NISZCZĄCY session ID|UOWZ STATUSONLY zwróci następujący komunikat o błędzie:

"Msg 6120, Level 16, State 1, Line 1"

"Status report cannot be obtained. Rollback operation for Process ID <session ID> is not in progress."

Ten sam raport o stanie można uzyskać przez powtórzenie tej samej NISZCZĄCYsession ID|UOW instrukcja bez korzystania z opcji Z STATUSONLY; Jednakże nie zaleca się wykonanie tej czynności.Powtarzające się "zabicia" session ID instrukcja może zakończyć nowy proces wycofywania zostały zakończone i identyfikator sesja zostało przypisane do nowego zadania przed uruchomieniem nowej NISZCZĄCY instrukcja .Określanie Z STATUSONLY zapobiega to sytuacjom.

Uprawnienia

Wymaga uprawnień zmieniać DOWOLNE połączenie.ZMIEŃ DOWOLNE połączenie jest dołączony do członkostwa w sysadmin lub processadmin stałe role serwera.

Przykłady

A.Aby zakończyć sesjaprzy użyciu NISZCZĄCY

Poniższy przykład ilustruje sposób zakończyć identyfikator sesja 53.

KILL 53;
GO

B.Przy użyciu NISZCZĄCY sesja ID Z STATUSONLY w celu otrzymania sprawozdanie okresowe

Poniższy przykład generuje stan procesu wycofywania Identyfikator określonej sesja .

KILL 54;
KILL 54 WITH STATUSONLY;
GO

--This is the progress report.
spid 54: Transaction rollback in progress. Estimated rollback completion: 80% Estimated time left: 10 seconds.

C.Za pomocą NISZCZĄCY zakończyć oddzielony transakcja rozproszona

Poniższy przykład ilustruje sposób zakończyć oddzielony transakcja rozproszona (identyfikatorsesja = -2) z UOW z D5499C66-E398-45CA-BF7E-DC9C194B48CF.

KILL 'D5499C66-E398-45CA-BF7E-DC9C194B48CF';