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 Czytaj dalej…

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 Czytaj dalej…

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 Czytaj dalej…

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.

Ola Hallengren: Statistics Optimize – jak ?

Statistics Optimize – czy to nowa procedura wspaniałego pakietu Ola Hallengrena ? Nie, poniżej przedstawię jak można za pomocą procedury IndexOptimize można było wykonać aktualizację samych statystyk bez przebudowy indeksów. Tematem tym zajmował się Brent Ozar i po napisaniu emaila do Ola Hallengrena otrzymał taką odpowiedź: Cała sztuczka polega na zadeklarowaniu następujących zmiennych jako NULL:

Ola Hallengren: IndexOptimize

Procedura składowana IndexOptimize Poniżej za pomocą skryptu można wylistować wszystkie parametry procedury składowanej IndexOptimize. Na chwilę obecną można doliczyć się 35 parametrów, które można wykorzystać do konfiguracji procedury. W odpowiedzi dostajemy następującą listę: Poniżej opiszę większość parametrów. Pozwoli to na lepsze zrozumienie zasad działania procedury IndexOptymazie i stworzenie własnego rozwiązania. Istnieje możliwość zmiany wartości domyślnych dla każdego parametru wewnątrz procedury, ale nie jest to zalecane, ponieważ wpłynie to na każde wywołanie joba, który korzysta z tej procedury (np. IndexOptimize – USER_DATABASES). Powszechną Czytaj dalej…