Share via


sp_who (Transact-SQL)

örnek geçerli kullanıcıları, oturumları ve işlemleri hakkında bilgi sağlar Microsoft SQL Server Veritabanı Altyapısı.Bilgileri yalnızca boş değil, belirli bir kullanıcıya ait ya da, belli bir oturumait işlemler döndürmek için filtre uygulanabilir.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

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

Bağımsız değişkenler

  • [ @ loginame = ] 'login' | session ID | 'Etkin'
    sonuç kümesifiltre uygulamak için kullanılır.

    loginİş sysname tanıtan işlemlere ait belirli bir oturum açma.

    session ID(SPID , SQL Server 2000 ve öncesi) ait bir oturum kimlik numarası olan SQL Server örnek.session IDis smallint.

    ACTIVE kullanıcıdan bir sonraki komutun bekleyen oturumları dışlar.

    Herhangi bir değer belirtilmezse, yordam örnekait olan 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 aşağıdaki bilgileri verir.

Column

Veri türü

Açıklama

spid

smallint

Oturum kimliği

ecid

smallint

Belirli bir oturum kimliği ile ilişkili belirli bir iş parçacığı yürütülmesine içerik kimliği

ECID = {0, 1, 2, 3,...n}, burada 0 her zaman gösterir ana veya üst iş parçacığıve {1, 2, 3,...n} subthreads temsil eder.

Durum

nchar(30)

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

uykuda.SQL Server' % s'oturumu oturumsıfırlanıyor.

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

arka plan.oturum çıkmaz algılaması gibi bir arka plan görevi çalışıyor.

geri alma.oturum işlemi geri alma işleminde bulunur.

Bekleyen.' % S'oturumu oturum kullanılabilir olana kadar bir işçi iş parçacığı için bekliyor.

runnable.oturumbir Zamanlayıcı runnable sırada saatkuantumalmak için beklerken görevdir.

Döngüsel beklemeye neden oluyor.oturumgörev bir sayaç kilidi serbest hale gelmesini bekliyor.

askıya.' % S'oturumu oturum bir olaygibi tamamlamak için g/Ç, bekliyor.

loginame

nchar(128)

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

anabilgisayaradı

nchar(128)

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

blk

char(5)

Engelleme işlemi oturum kimliği var.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ış işlemengellendiğinde bu sütun '-2' döndürür engelleme sahipsiz hareket için.

dbname

nchar(128)

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

komut

nchar(16)

Veritabanı AltyapısıKomut (Transact-SQL deyim, iç Veritabanı Altyapısı işlem vb.) yürütme işlemi.

request_id

int

İstek özel oturum, çalışan kimliği.

durum paralel işlemeda subthreads için belirli bir oturum kimliği oluşturulurAna iş parçacığı olarak gösterilen spid = <xxx> ve ecid =0.Diğer subthreads aynı olduğu spid = <xxx>, ama ecid > 0.

Açıklamalar

Bir özel kullanım kilidiolabilir, engelleyici bir işlem başka bir işlem gerekli kaynakları tutan biridir.

De SQL Server 2000 ve daha sonra tüm sahipsiz dağıtılmış işlemler '-2' oturum ID değeri atanan.Sahipsiz dağıtılmış hareketleri olan herhangi bir oturum kimliği ile ilişkili olmayan dağıtılmış işlemlerDaha fazla bilgi için, bkz. İşaretli işlemler (tam kurtarma modeli) kullanma.

SQL Server 2000ve 1'den 50 dahili kullanım için sonraki rezervler oturum kod değerleri ve oturum kod değerleri 51 veya daha yüksek kullanıcı oturumları temsil eder.

İzinler

örnek üzerinde yürütülen tüm oturumları görmek için sunucudaki görünüm server state izni gerektirir SQL Server.Aksi durumda, kullanıcı yalnızca geçerli oturumgörür.

Örnekler

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

Aşağıdaki örnek sp_who parametresiz için rapor tüm geçerli kullanıcıların.

USE master;
GO
EXEC sp_who;
GO

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

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

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

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

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