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.
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