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