Aracılığıyla paylaş


sp_who (Transact-sql)

Geçerli kullanıcıları, oturumları ve işlemleri örneği hakkında bilgi sağlayan Microsoft   SQL Server Veritabanı Altyapısı. Bilgiler yalnızca, boş olmayan, belirli bir kullanıcıya ait ya da belli bir oturuma ait işlemler döndürmek için filtre uygulanabilir.

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

Sözdizimi

sp_who [ [ @loginame = ] 'login' | session ID | 'ACTIVE' ]

Bağımsız değişkenler

  • @loginame = 'login' | session ID | 'Etkin'
    Sonuç kümesini süzmek için kullanılır.

    loginise sysnameait belirli bir oturum açma işlemleri tanımlayan.

    session IDait bir oturum kimlik numarası SQL Serverörneği. session IDis smallint.

    Aktif kullanıcı sonraki komut bekleyen oturumları dışlar.

    Hiçbir değer sağlanmışsa, yordam örneğine ait tüm oturumlar bildirir.

Dönüş Kodu Değerleri

0 (başarılı) veya 1 (hata)

Sonuç Kümeleri

sp_who bir sonuç kümesi ile aşağıdaki bilgileri verir.

Sütun

Veri türü

Açıklama

SPID

smallint

Oturum kimliği

ECID

smallint

Bir özel oturum kimliği ile ilişkili belirli bir iş parçacığı yürütme içerik Kımlığı

ECID = {0, 1, 2, 3,... n}, burada 0 her zaman ana veya üst iplik ve {1, 2, 3,... gösterir n} subthreads temsil eder.

durumu

nchar(30)

İşlem durumu. Olası değerler şunlardır:

uyuyan. SQL Serveroturumu sıfırlanıyor.

çalışan. Oturum, bir veya daha fazla gruplar çalışıyor. Birden çok etkin sonuç kümeleri (mars) etkinleştirildiğinde, bir oturumu birden çok toplu işlemi çalıştırabilirsiniz. Daha fazla bilgi için, bkz. Çoklu Active sonucu kullanarak (mars) ayarlar.

arka. Oturum kilitlenme algılaması gibi bir arka plan görevi çalışıyor.

geri alma. Oturumun bir hareketi geri alma işleminde bulunur.

Bekleyen. Oturum, bir çalışan iş parçacığı kullanılabilir olmayı bekliyor.

runnable. Oturumun bir zamanlayıcı runnable sırada Saat hisse almak için beklerken görevidir.

Döngüsel. Oturumun görev bir sayaç kilidi için özgür olmak bekliyor.

askıya. Oturum I/o tamamlamak için gibi bir olayı bekliyor.

loginame

nchar(128)

Belirli bir işlemle ilişkilendirilmiş oturum açma adı.

hostname

nchar(128)

Her işlem için ana bilgisayar veya bilgisayar adı.

BLK

char(5)

Oturum Kımlığı engelleme işlemi varsa. Aksi takdirde, bu sütun sıfırdır.

Belirtilen oturum kimliği ile ilişkili bir işlem tarafından artık bir dağıtılmış hareket engellendiğinde bu sütun-ecek dönmek '-2' engelleme sahipsiz hareket için.

dbname

nchar(128)

İşlem tarafından kullanılan veritabanı.

cmd

nchar(16)

Veritabanı Altyapısıkomut ( Transact-SQL deyimi, iç Veritabanı Altyapısıişlem vb.) işlemi yürütülürken.

request_id

int

İsteklerini belirli bir oturumda çalışan kimliği.

Paralel işlenmesi durumunda, subthreads için özel oturum kimliği oluşturulur Ana iş parçacığı olarak gösterilir spid = <xxx>ve ecid =0. Aynı subthreads sahip spid = <xxx>, ama ECID > 0.

Açıklamalar

Özel kilit olabilir, engelleyici bir işlem başka bir işlem gerektiren kaynaklara tutan biridir.

Tüm sahipsiz dağıtılmış işlemler '-2' oturumu ID değeri atanır. Sahipsiz dağıtılmış hareketleri olan herhangi bir oturum kimliği ile ilişkili olmayan dağıtılmış hareketleri Daha fazla bilgi için, bkz. İlişkili veritabanları sürekli kurtarmak için işaretlenen kullanımı (tam kurtarma modeli).

SQL Serverrezervler oturum kod değerleri 1 ile 50 dahili kullanım ve oturum kod değerleri 51 veya daha yüksek kullanıcı oturumları temsil eder.

İzinler

Sunucu örneği üzerinde tüm çalıştırılan oturumları görmek için VIEW server state izni gerektirir SQL Server. Aksi durumda, kullanıcı yalnızca geçerli oturumu görür.

Örnekler

A.Tüm geçerli işlemleri listeleme

Aşağıdaki örnek sp_whotüm kullanıcılar bildirmek için parametresiz.

USE master;
GO
EXEC sp_who;
GO

USE master;
GO
EXEC sp_who;
GO

B.Belirli bir kullanıcının işlemi listeleme

Aşağıdaki örnek oturum açma adıyla tek bir geçerli kullanıcı hakkında bilgi görüntülemek nasıl gösterir.

USE master;
GO
EXEC sp_who 'janetl';
GO

USE master;
GO
EXEC sp_who 'janetl';
GO

C.Tüm etkin işlemler görüntüleme

USE master;
GO
EXEC sp_who 'active';
GO

USE master;
GO
EXEC sp_who 'active';
GO

D.Bir oturum Kımlığı tarafından tanımlanan belirli bir işlemin görüntüleme

USE master;
GO
EXEC sp_who '10' --specifies the process_id;
GO

USE master;
GO
EXEC sp_who '10' --specifies the process_id;
GO

Ayrıca bkz.

Başvuru

sp_lock (Transact-sql)

sys.sysprocesses (Transact-sql)

Sistem saklı yordamları (Transact-sql)