Bardzo często zachodzi potrzeba uzyskania informacji o bieżących sesjach i procesach zachodzących w silniku bazy danych. Zwykle do wyświetlania tych informacji występujących na instancji SQL Server  używa się  systemowych procedur składowanych sp_who i sp_who2. Za pomocą tych tych procedur można zidentyfikować sesje blokujące i aktywne.

Oczywiście można do tych celów użyć dynamicznych widoków zarządzania (DMV) i dynamicznych funkcji zarządzania (DMF), aby uzyskać szczegółowe informacje o procesach SQL Server, waitach występujących w dostępie do  pamięci i procesora.

Procedury systemowe sp_who i sp_who2

Używając procedury sp_who, można uzyskać informacje o użytkowniku i procesie w tle. Zwracane są informacje, takie jak login, nazwy hostów, polecenia sql, informacje o blokadach, bazie danych, na której działa.

Procedura sp_who2 jest rozszerzeniem procedury sp_who, która zwraca więcej informacji niż procedura sp_who. Jest to procedura nieudokumentowana, ale nadal przydatna. Ta procedura zwraca  dodatkowe kolumny takie jak: CPUTime, DiskIO, LastBatch i ProgramName.

Powyższe procedury nie zwracają wielu przydatnych informacji, takich jak informacje o waitach, planach wykonania, czasie trwania.

Procedura Adama Machanica – sp_WhoIsActive

Bardzo przydatną procedurę składowaną jest sp_WhoIsActive napisana i rozwijana przez Microsoft MVP Adam Machanica. Tej procedury można używać począwszy od wersji SQL Server 2005. Procedura ta zbiera dane z różnych DMV i pokazuje informacje w formacie tabelarycznym. Charakteryzuje się ona dużą ilością parametrów, które sterują jej wykonaniem, dużą elastycznością oraz ilością zwracanych informacji.

Kod tej procedury można pobrać z serwisu GitHub .

Zawsze najlepszą praktyką jest sprawdzenie dokumentacji przed użyciem procedury. Można to zrealizować uruchamiając procedurę z argumentem @help = 1. Wyświetlane są następujące informacje.

  1. Pierwsza sekcja „header” zawiera informacje o wersji, prawach autorskich, e-mailu z opiniami, licencji i adresie URL
  2. W drugiej części „parameter” pokazuje dostępne parametry, ich opis oraz domyślne informacje
  3. Ostatnia sekcja pokazuje typy danych kolumn, opcje formatowania i opis:


Dariusz Brejnak

Od prawie trzydziestu lat jest pasjonatem informatyki, a zwłaszcza dziedzin dotyczących baz danych, hurtowni danych oraz ogólnie rozumianej tematyki BI. Jego druga pasja to fotografia http://dariuszbrejnak.pl