sp_who (Transact-SQL)

Provides information about current users, sessions, and processes in an instance of the Microsoft SQL Server Database Engine.Informacje mogą być filtrowane do zwracania tylko procesy, które nie są bezczynne, które należą do określonego użytkownika lub które należą do określonej sesja.

Topic link iconKonwencje składni języka Transact-SQL

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

Argumenty

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

    login jest sysname procesy należące do danego identyfikatora logowania, które identyfikują.

    session ID (SPID in SQL Server 2000 and earlier) is a session identification number belonging to the SQL Server instance.session ID is smallint.

    AKTYWNE wyłącza sesje, które oczekują na następne polecenie od użytkownika.

    Jeśli wartość nie zostanie podana, procedura raportuje wszystkie sesje należącej do wystąpienie.

Wartości kodów powrotnych

0 (sukces) lub 1 (brak)

Zestawy wyników

sp_who zwraca zestaw z następującymi informacjami wyników.

Kolumna

Typ danych

Description

SPID

smallint

Identyfikator sesja.

ecid

smallint

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

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

Stan

nchar(30)

Stan procesu.Możliwe wartości to:

dormant.SQL Server is resetting the session.

Uruchamianie.Sesja jest uruchomiony jeden lub więcej instancji.Po włączeniu wiele zestawów wyników Active (MARS) sesja można uruchamiać wiele instancji.Aby uzyskać więcej informacji zobaczZa pomocą wielu wyników Active ustawia (MARS).

tło.Sesja jest uruchomione zadania w tle, takich jak wykrywanie zakleszczenie.

Wycofywanie.Sesja ma cofnięcie transakcji w procesie.

Oczekujące.Sesja oczekuje na wątek roboczego stanie się dostępne.

runnable.Zadanie do sesja jest w kolejce runnable harmonogramu podczas oczekiwania na uzyskanie kwant czas.

spinloop.Zadania w sesja czeka, aż spinlock stać się wolne.

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

loginame

nchar(128)

Nazwa logowania skojarzone z określonego procesu.

Nazwa hosta

nchar(128)

Nazwa hosta lub komputera w każdym procesie.

blk

char(5)

Identyfikator sesja procesu blokowania, jeśli taki istnieje.W przeciwnym razie to kolumna wynosi zero.

Podczas transakcji skojarzone z IDENTYFIKATOREM określonej sesja jest blokowany przez transakcję rozproszonych oddzielone, w tej kolumnie będzie zwracać "2" blokowania oddzielonych transakcji.

dbname

nchar(128)

Bazy danych używanej przez proces.

cmd

nchar(16)

Database Engine polecenia)Transact-SQL instrukcja wewnętrzne Database Engine przetwarzanie i tak dalej) wykonywania procesu.

request_id

int

Identyfikator żądania w określonej sesja.

przypadek braku równoległego przetwarzania subthreads są tworzone dla identyfikatora określonej sesja.Główny wątek jest wskazywana jako spid = <xxx> i ecid =0. The other subthreads have the same spid = <xxx>, but with ecid > 0.

Remarks

Blokowanie procesu, który może mieć wyłącznej blokada, to takie, które posiada zasobów, które wymaga innego procesu.

W SQL Server 2000 a później, wszystkie transakcje rozproszone oddzielone są przypisane wartości IDENTYFIKATORA sesja od-"2". Transakcje rozproszone oddzielone są transakcje rozproszone, które nie są skojarzone z dowolnym identyfikatorem sesja.Aby uzyskać więcej informacji zobaczUsing Marked Transactions (Full Recovery Model).

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

Uprawnienia

Wymaga uprawnienia VIEW SERVER STATE na serwerze w celu wyświetlenia wszystkich wykonującego sesje na wystąpienie z 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 nie określono parametrów, aby zgłosić wszystkich bieżących użytkowników.

USE master;
GO
EXEC sp_who;
GO

B.Wyświetlanie listy procesów określony użytkownik

W poniższym przykładzie pokazano, jak do wyświetlania informacji o jeden bieżącego użytkownika o nazwie 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