Co nowego w sp_whoisactive v. 12.0

W listopadzie 2021 Adam Machanic wydał nową wersję popularnej procedury sp_WhoIsActive oznaczoną numerem 12.0 Co nowego zobaczymy w tej wersji? Nowy parametr,  @get_memory_info, który udostępnia informacje o przyznaniu pamięci, zarówno w kolumnach skalarnych najwyższego poziomu: max_used_memory, request_memory, granted_memory, jak i nowej kolumnie memory_info typu XML Lepsza obsługa nowszych typów waitów do obsługi paralelizmu CX*, które zostały dodane po 2016 r. Identyfikator implicit_transaction najwyższego poziomu, dostępny w  @get_transaction_info=1 Dodano  context_info i  original_login_name do kolekcji additional_info  Szereg drobnych poprawek błędów Informacje dotyczące równoległości: W kolumnie wait_info, jeśli zapytania trafiają Dowiedz się więcej

Cisco AnyConnect i Hyper-V – problemy połączenia VPN z poziomu maszyny wirtualnej

Od bardzo dawna używam odrębnych maszyn wirtualnych do łączenia się ze środowiskami swoich klientów. Każda maszyna ma zainstalowane podstawowe dedykowane oprogramowanie wraz z dedykowanym klientem do VPN oraz aby była w innej sieci niż moja sieć domowa. W pewnym momencie po zmianie wersji Cisco AnyConnect powstał Problem!!! Używam Hyper-V do hostowania tych gości, a pewnego dnia nie mogłem połączyć się z VPN klienta po ponownym uruchomieniu gościa. Spojrzałem na dziennik i zobaczyłem to Przy próbie połączenia dostaje komunikat: czyli „Możliwość ustanawiania VPN Dowiedz się więcej

sp_WhoIsActive -gromadzenie danych – I

Jeśli zachodzi potrzeba gromadzenia danych generowanych przez procedurę sp_whoisactive w celu dalszej analizy należy je zapisać do tabeli. W tym celu najpierw trzeba utworzyć tabelę o odpowiedniej strukturze. Jak to zrobić ? Z pomocą przychodzi sama procedura. Następujące polecenie wygeneruje kod potrzebny do utworzenia tabeli potrzebnej do przechowywania danych. Procedura ta wygeneruje skrypt tworzący tabelę: Wszystko, co teraz trzeba zrobić, to zastąpić ciąg „<table_name >” wybraną prawdziwą nazwą tabeli. Należy zwrócić uwagę, że skrypt tworzący tabelę zawiera wiele kolumn, które są kolumnami Dowiedz się więcej

Korzystanie z procedury sp_Whoisactive

Po zainstalowaniu procedury, jeśli zostanie ona wykonana, domyślnie zwraca ona tylko uruchomione procesy użytkownika i dostarcza następujące informacje dla każdego procesu: Kolumna Opis Wyświetlane przez sp_who Pokazane przez sp_who2 dd gg:mm:ss.mss Pokazuje czas trwania polecenia. Możemy użyć tej kolumny do identyfikacji długotrwałych transakcji Nie Nie session_id Identyfikator sesji procesu tak tak sql_text Aktualnie uruchomione polecenie SQL Nie Nie login_name Nazwa logowania powiązana z procesem tak tak wait_info Informacje o oczekiwaniu na proces (zagregowane) na identyfikatorze SPID, taki jak CXPACKET, ASYNC_NETWORK_IO wraz z Dowiedz się więcej

Dlaczego używam sp_WhoIsActive

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 Dowiedz się więcej

Max worker threads dla PowerShell

Wykonujesz z poziomu kroku w zadaniu (Jobie – tak chyba lepiej brzmi) instrukcję Powershell. Jest ich dosyć dużo, ale spostrzegasz, że tylko dwa wątki są wykonywane są wykonywane a reszta czeka. Jest to spowodowane domyślną wartością Max_worker_threads dla PowerShell ustawioną na 2. W celu zmiany należy wykonać poniższy skrypt. Z select należy odczytać wartość subsystem_id, a następnie wstawić ją do drugiej części w UPDATE.