sp_who (języka Transact-SQL)

Zawiera informacje o bieżących użytkowników, sesji i procesów w wystąpienie Microsoft Aparat baz danych programu SQL Server.Informacje mogą być filtrowane zwraca tylko procesy, które nie są bezczynne, które należą do określonego użytkownika lub należących do określonej sesja.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

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

Argumenty

  • [ @ loginame = ] 'login" | session ID | "Aktywny"
    Jest używane do filtrowania, zestaw wyników.

    loginjest sysname , które identyfikują procesy należące do określonej logowania.

    session ID(SPID w SQL Server 2000 i wcześniejszych) jest numer identyfikacyjny sesja należących do SQL Server wystąpienie.session IDis smallint.

    ACTIVE nie obejmuje sesje, które oczekują dla następnego polecenia od użytkownika.

    Jeśli wartość nie zostanie podana, procedura zgłasza wszystkie sesje należących do wystąpienie.

Wartości kodów powrotnych

0 (sukces) lub 1 (błąd)

Zestawy wyników

sp_who zwraca zestaw wyników następujące informacje.

Column

Typ danych

Opis

Identyfikator SPID

smallint

Identyfikator sesji.

ecid

smallint

Identyfikator kontekstu wykonanie danego wątek skojarzone z identyfikatorem określonej sesja .

ECID = {0, 1, 2, 3...n}, gdzie 0 zawsze reprezentuje głównym lub nadrzędnym wąteki {1, 2, 3...n} reprezentuje subthreads.

Stan

nchar(30)

Stan procesu.Możliwe wartości to:

nieaktywnych.SQL ServerResetuje sesja.

Uruchamianie.sesja jest uruchomiony jeden lub więcej partii.Wiele zestawów wyników Active (MARS) jest włączony, można uruchamiać wiele instancji w sesja .Aby uzyskać więcej informacji, zobacz Za pomocą wielu aktywnych wynik ustawia (MARS).

tło.sesja jest uruchomione zadania w tle, takie jak wykrywanie zakleszczenie .

Wycofywanie.sesja ma cofnięcie transakcji w procesie.

Oczekiwanie na.sesja oczekuje na wątek roboczego stanie się dostępne.

możliwe do uruchomienia.Zadanie sesjajest możliwe do uruchomienia kolejki harmonogramu podczas oczekiwania czas kwant.

spinloop.sesjazadanie oczekuje na spinlock zwolnienie.

zawieszone.sesja oczekuje na zdarzenie, takie jak We/Wy, aby zakończyć.

loginame

nchar(128)

Nazwa logowania skojarzone z danym procesie.

Nazwa hosta

nchar(128)

Nazwa hosta lub komputera dla każdego procesu.

blk

char(5)

Identyfikator sesji procesu blokowania, jeśli taka istnieje.W przeciwnym razie w tej kolumna wynosi zero.

Po zablokowaniu transakcji skojarzony z Identyfikatorem sesja określonej przez osierocone transakcja rozproszonaw tej kolumna zwróci "-2" Blokowanie transakcji oddzielona.

dbname

nchar(128)

Bazy danych używanej przez proces.

cmd

nchar(16)

Aparat baz danychpolecenia (Transact-SQL instrukcja, wewnętrznego Aparat baz danych proces i tak dalej) wykonywania procesu.

request_id

int

Identyfikator żądania w określonej sesja.

W przypadek przetwarzanie równoległesubthreads są tworzone dla identyfikatora określonej sesja .Główny wątek jest wskazany jako spid = <xxx> i ecid =0.Inne subthreads mają taki sam spid = <xxx>, ale z ecid > 0.

Uwagi

Blokowanie proces, który może mieć blokada na wyłączność, jest gospodarstwo zasobów, które wymaga innego procesu.

W SQL Server 2000 i później, oddzielonych wszystkie transakcje rozproszone są przypisane wartości Identyfikatora sesja "-2".Oddzielony transakcje rozproszone są transakcje rozproszone, które nie są skojarzone z dowolnym identyfikator sesja .Aby uzyskać więcej informacji, zobacz Używając zaznaczonych transakcji (modelu odzyskiwania pełny).

SQL Server 2000i nowszych wartości Identyfikatora sesja rezerw od 1 do 50 do użytku wewnętrznego i wartości Identyfikatora sesja 51 lub wyższej reprezentują sesji użytkownika.

Uprawnienia

Wymaga uprawnień stan WIDOKU serwera na serwerze w celu wyświetlenia wszystkich nakaz sesje na wystąpienie SQL Server.W przeciwnym razie użytkownik widzi tylko w bieżącej sesja.

Przykłady

A.Wyświetlanie listy wszystkich bieżących procesów

W poniższym przykładzie użyto sp_who bez parametrów raportu wszystkich bieżących użytkowników.

USE master;
GO
EXEC sp_who;
GO

B.Określony użytkownik procesu wystawiania

Poniższy przykład pokazuje sposób wyświetlania informacji o pojedynczym bieżącego użytkownika przez nazwę logowania.

USE master;
GO
EXEC sp_who 'janetl';
GO

C.Wyświetlanie wszystkich aktywnych procesów

USE master;
GO
EXEC sp_who 'active';
GO

D.Wyświetlanie określonego procesu, identyfikowane przez identyfikator sesja

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