KILL (Transact-sql)

Oturum kimliği veya iş (uow) temel kullanıcı işlemi sonlandırır. Belirtilen oturum Kımlığı veya uow geri almak için işin bir sürü varsa, KILL deyimi tamamlamak için özellikle ne zaman o uzun bir hareket geri karıştırmak biraz zaman alabilir.

KILL dahili olarak belirtilen oturum kimliği ile ilişkili hareketleri sonlandırır normal bir bağlantı sonlandırmak için kullanılabilir Deyimi de yetim ve şüpheli dağıtılmış işlemleri sonlandırmak için kullanılabilir zaman MicrosoftDistributed Transaction Coordinator (ms dtc) kullanımda.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

KILL { session ID | UOW } [ WITH STATUSONLY ] 

Bağımsız değişkenler

  • session ID
    Sonlandırmak için oturum işlem kimliğidir. session IDbenzersiz bir tamsayıdır (int), atandığı her kullanıcı bağlantı için bağlantı yapıldığında. Oturum Kımlığı değerini bağlantı için bağlantı süresini bağlıdır. Bağlantı sona erdiğinde, tamsayı değeri serbest bırakılır ve yeni bir bağlantı atanabilir.

    Kullanın KILL session IDbelirli bir oturum kimliği ile ilişkili olan normal nondistributed ve dağıtılmış hareketleri sonlandırmak için

  • UOW
    Birim, çalışma kimliği (uow) dağıtılmış hareketleri tanımlar. UOWKimden alınabilir bir GUID request_owner_guidsütununda sys.dm_tran_locksdinamik yönetimi görünümü. UOWhata günlüğünü veya ms dtc İzleyicisi ile de alınabilir. Dağıtılmış hareketleri izleme hakkında daha fazla bilgi için ms dtc belgelerine bakın.

    Kullanın KILL UOWsahipsiz dağıtılmış işlem sonlandırmak için. Bu hareketler herhangi bir gerçek oturum kimliği ile ilişkili değildir, ancak bunun yerine ilişkili yapay = oturum Kımlığı ile '-2'. Bu oturum kimliği oturum kimliği sütununda sorgulayarak artık hareketlerini tanımlamak kolaylaştırır sys.dm_tran_locks, sys.dm_exec_sessions, ya sys.dm_exec_requestsdinamik yönetimi görünümleri.

  • İLE STATUSONLY
    Belirtilen bir hakkında ilerleme raporu üretir session IDya UOWBu silindir geri nedeniyle bir önceki KILL deyimi. statusonly ÖLDÜRMEK değil bitirmek veya geri session IDya UOW; komutu yalnızca geri alma geçerli durumunu görüntüler.

Açıklamalar

KILL, işlemin diğer önemli işlemler ile kilitleri engelleme ya da gerekli sistem kaynaklarını kullanan bir sorgu yürütülürken bir işlemi sonlandırmak için yaygın olarak kullanılır. Sistem işlemleri ve genişletilmiş saklı yordam çalışan işlemler sona olamaz.

KILL, özellikle kritik süreçler çalışırken çok dikkatli bir şekilde kullanın. Kendi işlem yok edemez. Değil öldürmek gerekir diğer işlemler arasında şunlar yer alır:

  • KOMUT BEKLEYEN

  • DENETİM NOKTASI UYKU

  • TEMBEL YAZAR

  • KİLİT İZLEYİCİSİ

  • SİNYAL EYLEMCİ BELİRTİR

@@ SPID geçerli oturum için oturum Kımlığı değerini görüntülemek için kullanın.

Rapor etkin oturumun kimliği değerleri elde etmek için sorgulayabilir session_id sütununda sys.dm_tran_locks, sys.dm_exec_sessions, ve sys.dm_exec_requestsdinamik yönetimi görünümleri. Sen-ebilmek da görüş SPIDtarafından döndürülen sütun sp_whosistem saklı yordamını. Eğer bir geri alma belirli bir SPID için sürdürülen cmdsütununda sp_whosonuç kümesi için bu SPID KILLED/rollback gösterir.

Belirli bir bağlantı kilit bir veritabanı kaynağı ve başka bir bağlantı ilerlemesini engeller, oturum Kımlığı engelleme bağlantı içinde görünür blocking_session_idsütununda sys.dm_exec_requestsya da blktarafından döndürülen sütun sp_who.

KILL komutu, şüpheli dağıtılmış hareketleri çözmek için kullanılabilir. Bu işlemler nedeniyle veritabanı sunucusu veya ms dtc Düzenleyicisi planlanmamış yeniden ortaya çözülmemiş dağıtılmış hareketleri vardır. Şüpheli hareketler hakkında daha fazla bilgi için bkz: "taahhüt Two-Phase" bölüm içinde İlişkili veritabanları sürekli kurtarmak için işaretlenen kullanımı (tam kurtarma modeli).

İLE statusonly kullanma

Eğer yalnızca oturum Kımlığı veya uow şu anda bir önceki KILL nedeniyle döndürülüyor statusonly ÖLDÜRMEK bir rapor oluşturur.session ID|UOWdeyimi. İlerleme raporu geri alma tamamlandı (yüzde) miktarı ve tahmini süre (saniye olarak), aşağıdaki formda yaptı devletler:

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

Ne zaman oturum Kımlığı veya uow geri alma tamamlandı, KILLsession ID|UOW İLE statusonly deyimi yürütüldüğünde, ya da hiçbir oturum Kımlığı veya uow, KILL döndürülüyor session ID|UOWstatusonly ile aşağıdaki hata döndürür:

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

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

Aynı durum raporu aynı KILL yineleyerek elde edilebilirsession ID|UOWstatusonly seçeneği kullanmadan beyanı; Ancak, bunu önermiyoruz. Yinelenen bir KILL session IDdeyimi sonlandırmak yeni bir işlemi geri alma bitirmişti ve yeni KILL deyimi çalıştırmadan önce oturum kimliği yeni bir göreve atandı. statusonly belirtme bu olmasını engeller.

İzinler

Herhangi bir bağlantı, alter izni gerektirir. alter any bağlantı üyeliği ile birlikte sysadminya processadminsabit sunucu rolü.

Örnekler

A.KILL kullanarak bir oturumu sonlandır

Aşağıdaki örnek oturum Kımlığı sonlandırmak nasıl gösterir 53.

KILL 53;
GO

KILL 53;
GO

B.İlerleme raporu edinmek için KILL oturum Kımlığı statusonly 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.

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 sahipsiz dağıtılmış işlem sonlandırmak için kullanma

Aşağıdaki örnek bir sahipsiz dağıtılmış işlem sonlandırmak nasıl gösterir (oturum kimliği -2 =) ile bir UOW, D5499C66-E398-45CA-BF7E-DC9C194B48CF.

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

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

Ayrıca bkz.

Başvuru

İSTATİSTİK iş (Transact-sql) ÖLDÜRMEK

Sorgu bildirim aboneliği (Transact-sql) ÖLDÜRMEK

Yerleşik İşlevler (Transact-SQL)

KAPATMA (Transact-sql)

@@ Boşta (Transact-sql)

sys.dm_exec_requests (Transact-sql)

bkz:sys.dm_exec_sessions (Transact-sql)

sys.dm_tran_locks (Transact-sql)

sp_lock (Transact-sql)

sp_who (Transact-sql)