"Zabicia" (języka Transact-SQL)

Kończy proces użytkownika, które są skojarzone z IDENTYFIKATOREM sesja (SPID w SQL Server 2000 i wcześniej) lub jednostki pracy (UOW). Jeśli określonej sesja identyfikator lub UOW jest dużo pracy do cofnąć, instrukcja "zabicia" może zająć trochę czas, aby zakończyć, szczególnie gdy obejmuje wycofywanie transakcji długie.

W SQL Server 2000 i nowszych wersji, "zabicia" mogą być używane do zakończenia normalnego połączenia wewnętrznie kończy transakcji, które są skojarzone z identyfikatorem określonej sesja. W instrukcja można również zakończyć oddzielonych i znajdujących się w stanie wątpliwości transakcja rozproszona po Microsoft Koordynator transakcja rozproszona (MS DTC) jest w użyciu.

Topic link iconKonwencje składni języka Transact-SQL

KILL { session ID | UOW } [ WITH STATUSONLY ] 

Argumenty

  • session ID
    Is the session ID of the process to terminate.session ID is a unique integer (int) that is assigned to each user connection when the connection is made.Wartość Identyfikator sesja jest związany połączenia w czasie trwania połączenia.Po zakończeniu połączenia, wartość całkowita jest zwalniane, a także mogą być przypisane do nowego połączenia.

    Za pomocą "zabicia" session ID Aby zakończyć regularnych transakcji nondistributed i rozproszonych, które są skojarzone z identyfikatorem określonej sesja.

  • UOW
    Identifies the Unit of Work ID (UOW) of distributed transactions.UOW is a GUID that may be obtained from the request_owner_guid column of the sys.dm_tran_locks dynamic management view.UOW also can be obtained from the error log or through the MS DTC monitor.Aby uzyskać więcej informacji na temat monitorowania transakcji rozproszonych zobacz w dokumentacji usługi MS DTC.

    Za pomocą "zabicia" UOW Aby zakończyć oddzielony transakcji rozproszonych. Transakcje te nie są skojarzone z dowolnego IDENTYFIKATORA sesja rzeczywiste, ale zamiast tego są skojarzone sztucznie identyfikator sesja = "2".Ten identyfikator sesja ułatwia identyfikowanie oddzielonych transakcji za pomocą kwerend wysyłanych do kolumna Identyfikator sesja, sys.dm_tran_locks, sys.dm_exec_sessions lub sys.dm_exec_requests dynamiczne zarządzanie widokami.

  • Z STATUSONLY
    Generuje raport o postępie o określonym session ID lub UOW które jest przywracana jest z powodu wcześniejszych instrukcja "zabicia". Nie zakończyć lub przywrócić KILL WITH STATUSONLY session ID lub UOW; polecenie wyświetla bieżący postęp wycofywania.

Remarks

"Zabicia" jest często używana do zakończenia procesu, która blokuje innych ważnych procesów z blokowaniem lub proces, który wykonuje kwerendę, która korzysta z zasobów systemu niezbędnych.System procesów i procesów uruchomionych rozszerzone procedura przechowywana nie może zostać zakończony.

Należy używać "zabicia" bardzo ostrożnie, zwłaszcza wówczas, gdy uruchomione procesy krytycznych.Nie można skasować własny proces.Oto inne procesy nie należy:

  • OCZEKIWANIE NA POLECENIA

  • TRYB UŚPIENIA punkt kontrolny

  • MODUŁ ZAPISUJĄCY OPÓŹNIENIEM

  • BLOKADA MONITORA

  • OBSŁUGA SYGNAŁU

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

Aby otrzymać raport o sesja aktywnych wartości identyfikatorów, można wysyłać kwerendy kolumna session_id sys.dm_tran_locks, sys.dm_exec_sessions i sys.dm_exec_requests dynamicznego zarządzania widokami.Można również wyświetlać kolumna identyfikatora SPID, która jest zwracany przez sp_who systemowa procedura składowana.W przypadku przywracanie w toku dla określonego identyfikatora SPID, ustawić kolumna cmd w wyniku sp_who dla identyfikatora SPID oznacza KILLED/ROLLBACK.

Gdy określonego połączenia ma blokada do zasób bazy danych i blokuje postęp innego połączenia, identyfikator sesja blokującą połączenia jest pokazywany w kolumnie blocking_session_id sys.dm_exec_requests lub kolumna blk zwrócony przez sp_who.

Polecenia ZABICIA można użyć w celu rozwiązania wątpliwych transakcji rozproszonych.Są te transakcje 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 sekcję "zatwierdzanie Two-Phase" w Using Marked Transactions (Full Recovery Model).

Korzystanie Z STATUSONLY

KILL WITH STATUSONLY generuje raport tylko wtedy, gdy sesja identyfikator lub UOW aktualnie jest przywracana jest z powodu poprzedniej "zabicia" session ID|UOW Instrukcja. Sprawozdanie z postępu informujący kwota Wycofywanie ukończone (w procentach) i szacowana długość czas (w sekundach), w lewo w następującej postaci:

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

Jeśli wycofywanie identyfikator sesja lub UOW zostało zakończone, kiedy NISZCZĄCY session ID|UOW WITH STATUSONLY instrukcja jest wykonywana, lub jeśli żaden identyfikator sesja lub UOW jest przywracana jest, "zabicia" session ID|UOW WITH STATUSONLY zwróci następujący komunikat o błędzie:

„ Msg 6120 poziom 16, State 1, wiersz 1 „

"Nie można uzyskać raport o stanie.Operacja wycofywania dla IDENTYFIKATORA procesu <Identyfikator sesja>nie jest w toku. „

Ten sam raport o stanie można uzyskać przez powtórzenie tych samych "zabicia" session ID|UOW Instrukcja bez korzystania z opcji WITH STATUSONLY; jednak nie jest zalecane w ten sposób. Powtarzające się "zabicia" session ID Instrukcja może zakończyć nowego procesu, jeśli wycofywanie zostały zakończone i identyfikator sesja zostało przypisane do nowego zadania, przed uruchomieniem nowej instrukcji "zabicia". Specifying WITH STATUSONLY uniemożliwia to rzędu.

Uprawnienia

Wymaga uprawnienia ALTER bez CONNECTION.ALTER ANY CONNECTION jest dołączany do członkostwo w grupie sysadmin lub processadmin stałe role serwera.

Przykłady

A.Aby zakończyć sesja przy użyciu "zabicia"

W poniższym przykładzie pokazano, jak zakończyć identyfikator sesja 53.

KILL 53;
GO

B.Przy użyciu sesja "zabicia" identyfikator WITH STATUSONLY w celu otrzymania sprawozdanie z postępu

W poniższym przykładzie generuje stan procesu wycofywania dla identyfikatora 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ą "zabicia" zakończenie transakcja rozproszona oddzielonych

W poniższym przykładzie pokazano, jak zakończyć transakcja rozproszona oddzielone (identyfikator sesja = -2) z UOW z D5499C66-E398-45CA-BF7E-DC9C194B48CF.

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

Historia zmian

Microsoft Learning

Pod warunkiem, że bardziej szczegółowe instrukcja uprawnień.