Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

SYS.DM_EXEC_REQUESTS

Termin Definicja
SYS.DM_EXEC_REQUESTS

sys.dm_exec_requests zwraca listę aktualnie wykonywanych żądań na instancji.

Migawka tego, co dzieje się na instancji w tej chwili

sys.dm_exec_requests to dynamiczny widok zarządzania pokazujący każde żądanie aktualnie wykonywane przez silnik — zarówno zapytania użytkowników, jak i procesy wewnętrzne serwera. Każdy wiersz odpowiada jednemu żądaniu i niesie komplet danych diagnostycznych: session_id identyfikujący sesję, status z wartościami running, runnable, suspended lub sleeping, command określający rodzaj operacji, database_id wskazujący bazę, w której żądanie pracuje, oraz czasy — cpu_time i total_elapsed_time podawane w milisekundach. Do tego dochodzą liczniki wejścia i wyjścia: reads, writes i logical_reads. Widok jest ulotny z natury; dwa kolejne uruchomienia tego samego zapytania zwrócą inny obraz, bo pokazuje stan, a nie historię.

Kolumny, które rozwiązują konkretne problemy

Przy zawieszonym programie handlowym najważniejsza jest kolumna blocking_session_id — wartość różna od zera oznacza, że dana sesja czeka na zwolnienie zasobu przez inną i podaje jej numer, co pozwala prześledzić łańcuch blokad aż do sesji źródłowej. Uzupełniają ją wait_type i wait_resource opisujące rodzaj oczekiwania oraz obiekt, na którym zapytanie stanęło. Osobno warto znać percent_complete, które dla wybranych długotrwałych operacji, takich jak BACKUP DATABASE, RESTORE czy DBCC CHECKDB, pokazuje realny postęp — to jedyny wygodny sposób, żeby odpowiedzieć na pytanie, ile jeszcze potrwa odtwarzanie bazy uruchomione w nocy. Kolumna open_transaction_count ujawnia z kolei sesje z niezatwierdzoną transakcją, czyli typową przyczynę rozrastającego się dziennika transakcji.

Ograniczenia, o których łatwo zapomnieć

Bez uprawnienia VIEW SERVER STATE użytkownik zobaczy wyłącznie własne żądanie, więc analiza blokad z konta operatora programu magazynowego zwykle nie ma szans się udać i kończy się wnioskiem, że serwer jest pusty. Druga pułapka to interpretacja czasów: total_elapsed_time obejmuje również oczekiwanie na sieć i na klienta, więc wysoka wartość nie musi oznaczać ciężkiego zapytania. Trzecia to sam sql_handle, który bywa pusty dla części procesów systemowych. Warto też pamiętać, że widok nie pokazuje sesji bezczynnych z otwartą transakcją, jeśli akurat nie wykonują żądania — do tego służy sys.dm_exec_sessions.

Diagnostyka spowolnionej bazy w firmie

Kiedy wystawienie faktury w Subiekcie trwa minutę zamiast sekundy, zwykle winna jest konkretna blokada albo zapytanie skanujące całą tabelę bez indeksu, a nie za słaby serwer. Podłączamy się do instancji, ustalamy sesję blokującą, sprawdzamy plan wykonania i dobieramy poprawkę: brakujący indeks, zmianę poziomu izolacji albo przebudowę statystyk. Zgłoszenia przyjmujemy przez całą dobę, bo najgorsze przestoje zdarzają się na koniec miesiąca.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę