Share via


KILL (Transact-SQL)

Oturum kimliği temel alarak bir kullanıcı işlemi sona erer (SPID, SQL Server 2000ve önceki sürümleri) veya (UOW) iş biriminin.Belirtilen oturum kimliği veya UOW geri alma alma almak için iş çok, KILL bildirimi tamamlamak için özellikle, uzun bir işlemi geri alma alma kapsadığı biraz saat alabilir.

InSQL Server 2000ve sonraki sürümleri, KILL bir normal bağlantısı, dahili sona belirtilen oturum kimliği ile ilişkili olan işlemleri sonlandırmak için kullanılabilirdeyim de artık ve şüpheli dağıtılmış işlemleri sonlandırmak için kullanılabilir,MicrosoftDağıtılmış İşlem Eşgüdümcüsü (MS DTC) ise kullanın.

Topic link iconTransact-SQL sözdizimi kuralları

KILL { session ID | UOW } [ WITH STATUSONLY ] 

Bağımsız değişkenler

  • 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.Oturum kimliği değeri, bağlantı süresince bağlantısına bağlıdır.Bağlantı sona erdiğinde, tamsayı değeri serbest bırakılır ve yeni bir bağlantı yeniden.

    Kullanım Kaldırsession IDNormal nondistributed ve dağıtılmış işlemler, belirtilen bir oturum kimliği ile ilişkili olan sonlandırmak için

  • 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.Dağıtılmış hareketleri izleme hakkında daha fazla bilgi için MS DTC belgelerine bakın.

    Kullanım KaldırUOWiçin son artık dağıtılmış hareketleri.Bu hareketler herhangi gerçek bir oturum kimliği ile ilişkili değildir, ancak bunun yerine ilişkili yapay '-2' ile oturum kimliği =.Bu oturum kimliği oturum ID sütun sys.dm_tran_locks, sys.dm_exec_sessions veya sys.dm_exec_requests Dinamik yönetim görünümü sorgulayarak artık hareketlerini tanımlamak kolaylaştırır.

  • STATUSONLY İLE
    Belirtilen ilgili ilerleme rapor oluşturursession IDorUOWToplu geri yüzünden bir önceki KILL deyim.KILL ile STATUSONLY değil sonlandırmak veya geri almak almaksession IDorUOWkomutu yalnızca geçerli ilerleme durumunu görüntüler; geri almak almak.

Remarks

KILL kilit önemli diğer işlemlerle engelleyen bir işlem ya da gerekli sistem kaynaklarını kullanan bir sorgu yürütme işlemi sonlandırmak için yaygın olarak kullanılır.Sistem işlemleri ve bir genişletilmiş saklı yordam çalışan işlemler yapamaz sonlandırıldı.

KILL, özellikle kritik işlemler çalışırken çok dikkatli kullanın.Kendi işlemi kapatma olamaz.Size gereken diğer işlemleri sonlandırmak için aşağıdakileri içerir:

  • KOMUT BEKLEYEN

  • DENETİM NOKTASI uykuya geçirmek

  • YAVAŞ YAZICI

  • EKRAN KİLİTLEME

  • SİNYAL TUTUCUSU

Kullanım @@ SPID geçerli oturumu. oturum kimliği değerini görüntüleme

Etkin oturum için bir rapor kod değerleri elde etmek için session_id sütun sys.dm_tran_locks, sys.dm_exec_sessions ve sys.dm_exec_requests Dinamik yönetim görünümü sorgulayabilir.Sp_who Sistem saklı yordamla verilen SPID sütun da görüntüleyebilirsiniz.Belirli bir SPID için bir geri alma ediyor, sp_who sonucu cmd sütununda SPID KILLED/ROLLBACK gösterir ayarlayın.

Belirli bir bağlantı bir kilit bir veritabanı kaynağı olan ve başka bir bağlantı durumunu engeller, engelleme bağlantının oturum kimliği sys.dm_exec_requests blocking_session_id sütun ya da sp_who tarafından döndürülen blk sütununda görünür.

KILL komutu dağıtılmış şüpheli hareketleri çözmek için kullanılır.Bu işlemler veritabanı sunucusu veya MS DTC düzenleyicisi planlanmamış yeniden nedeniyle oluşan kararsız Dağıtılmış hareketler var.Şüpheli hareketleri hakkında daha fazla bilgi için "Two-Phase yürütme" bölümüne bakınIşaretli işlemler (Tam kurtarma modeli) kullanma.

STATUSONLY ile kullanma

KILL ile STATUSONLY yalnızca, oturum kimliği veya UOW geçerli toplu geri bir önceki KILL nedeniyle bir rapor oluşturursession ID|UOWdeyim.İlerleme raporu geri alma tamamlandı (%) miktarı ve şu biçimde (saniye olarak) kalan tahmini süreyi belirtir:

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

Ne zaman oturum kimliği veya UOW geri alma tamamlandı, KILLsession ID|UOWİle STATUSONLY deyim yürütüldüğünde, veya herhangi bir oturum kimliği veya UOW, KILL döndürülüyorsession ID|UOWİle STATUSONLY, aşağıdaki hata döndürür:

"İleti 6120, düzey 16, durum 1, Line 1"

"Durum raporu alınamıyor.İşlem kimliği için geri alma işlemi<oturum kimliği>değil ilerleme. "

Aynı durum raporu alınan yinelenen aynı KILL tarafındansession ID|UOWdeyim ile STATUSONLY seçeneği; kullanmadan bunu ancak önerilmez.Yinelenen bir KILLsession IDdeyim sonlandırmak yeni bir işlem geri alma tamamlandı ve oturum kimliği yeniden yeni bir göreve önce yeni KILL deyim çalışma.Specifying ile STATUSONLY bu gelen oluşmasını engeller.

İzinler

ALTER ANY CONNECTION izni gerektirir.ALTER ANY CONNECTION üyelik sysadmin sabit sunucu rolü processadmin de bulunur.

Örnekler

C.KILL kullanarak oturum sonlandır

Aşağıdaki örnek, nasıl oturum kimliği sonlandırma gösterir53.

KILL 53;
GO

B.KILL oturum kimliği ile STATUSONLY bir ilerleme raporu almak için kullanma

Aşağıdaki örnek, belirli bir oturum kimliği için geri alma işlemi durumu oluşturur

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.KILL artık bir dağıtılmış işlem sonlandırmak için kullanma

Artık bir dağıtılmış işlem sonlandırmak için aşağıdaki örnekte gösterilmektedir (oturum kimliği -2 =) ile birUOWofD5499C66-E398-45CA-BF7E-DC9C194B48CF.

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

Değişiklik Geçmişi

Güncelleştirilmiş içerik

İzin deyim daha ayrıntılı sağlanır.