Pracując jako administrator bazy danych SQL Server, powinieneś mieć umiejętności, aby zanurzyć się głęboko w oceanie silnika SQL Server i znaleźć to, co dzieje się wewnętrznie, aby móc wykrywać, rozwiązywać i naprawiać wszelkie problemy, z którymi możesz się zetknąć.
Możesz czerpać korzyści z dzienników, które są zapisywane przez aparat SQL Server lokalnie w postaci dzienników SQL Server lub zewnętrznie w postaci dzienników zdarzeń, ale nie możesz traktować ich jako jedynego źródła rozwiązywania problemów i dostrajania operacje.
SQL Server zapewnia szereg wbudowanych funkcji, których można używać do zbierania różnych typów zdarzeń SQL Server. W tym artykule omówimy te wbudowane funkcje i rozważymy jedno z najbardziej wydajnych bezpłatnych narzędzi innych firm, które można wykorzystać do zbierania i analizowania zdarzeń SQL Server.
Profil SQL
SQL Server Profiler jest powszechnie używany przez administratorów baz danych SQL Server i programistów do zbierania wariantów typów zdarzeń dotyczących zapytań uruchomionych w podłączonej instancji SQL Server, a następnie wykorzystania tych informacji do zwiększenia wydajności zapytań.
SQL Profiler umożliwia przechwytywanie wielu różnych zdarzeń, określanie interesujących właściwości zdarzeń i filtrowanie przechwyconych danych na podstawie wcześniej określonych wartości właściwości. Możesz zagłębić się w to, na jakiej głębokości użytkownik wykonuje jaką akcję na jakiej tabeli bazy danych, z jakiej maszyny iw jakim dokładnie czasie. Ponadto SQL Profiler wyświetla liczbę zużytych zasobów i pokazuje, czy akcja została zakończona, czy nie powiodła się z powodu błędu.
Zbieranie zdarzeń za pośrednictwem programu SQL Profiler odbywa się przy użyciu wielu istniejących szablonów lub poprzez utworzenie własnego, dostosowanego szablonu przy użyciu istniejących zdarzeń. Najpierw musisz połączyć się z instancją SQL Server, z której planujesz przechwycić zdarzenia, podając nazwę instancji SQL Server, metodę uwierzytelniania i poświadczenia wymagane do połączenia z tą instancją SQL Server, jak pokazano poniżej:
Po połączeniu się z instancją SQL Server zostaniesz poproszony o określenie szablonu dla zdarzeń, które mają być zbierane, w oparciu o cel procesu profilowania, jak pokazano poniżej:
Na poprzednim obrazie widać, że program SQL Profiler udostępnia opcję zapisania wyniku śledzenia w pliku lub w istniejącej tabeli bazy danych. Jeśli żaden z dostarczonych szablonów nie spełnia Twoich wymagań, możesz łatwo przejść do Wyboru wydarzeń i zaznacz, aby wyświetlić wszystkie zdarzenia i kolumny, a następnie przefiltrować przechwycone zdarzenia według właściwości, którymi jesteś zainteresowany. Na przykład możesz filtrować, aby przechwytywać zdarzenia pochodzące z określonej bazy danych, użytkownika bazy danych, tabeli bazy danych, komputera hosta itp. włączony, jak następuje:
Po wybraniu wydarzeń, które Cię interesują, po prostu kliknij Uruchom i rozpocznij odbieranie zdarzeń z wybranej bazy danych, jak pokazano poniżej:
Weź pod uwagę, że jeśli nie zdefiniujesz bardzo dokładnego filtru zbierającego tylko te zdarzenia, które Cię interesują, SQL Profiler zbierze dużą liczbę zdarzeń, które będą trudne do odczytania i przeanalizowania. Ponadto nie zaleca się uruchomienie narzędzia SQL Profiler w środowisku produkcyjnym, ponieważ „zje” ono zasoby serwera i zabije jego wydajność. Jeśli bardzo potrzebujesz go użyć, spróbuj zawęzić zakres zdarzeń, które mają zostać przechwycone, używając dokładnych filtrów.
Wydarzenia rozszerzone
Aby przezwyciężyć problem spadku wydajności spowodowany użyciem przestarzałego narzędzia SQL Profiler do przechwytywania różnych typów zdarzeń SQL, w programie SQL Server 2008 wprowadzono uproszczoną, wysoce skalowalną i konfigurowalną funkcję monitorowania wydajności, która może służyć do zbierania przydatnych informacji z szerokiej gamy dostępnych akcji, przy jak najmniejszym zużyciu zasobów SQL, co pomaga w rozwiązywaniu problemów i dostrajaniu wydajności zapytań SQL Server. Ta funkcja przechwytywania zdarzeń nazywa się SQL Server Extended Events .
Funkcja Extended Events jest dostępna za pośrednictwem SQL Server Management Studio, z Extended Events opcja pod Zarządzaniem węzeł. Aby utworzyć nową sesję wydarzeń rozszerzonych, kliknij prawym przyciskiem myszy Sesje opcja pod Wydarzenia rozszerzone węzeł i wybierz Nowa sesja jak poniżej:
Z Nowej sesji w oknie, masz możliwość wyboru spośród wielu dostępnych szablonów, z większą liczbą predefiniowanych szablonów niż szablony SQL Profiler, lub po prostu użyj pustego szablonu i wyraźnie określ zdarzenia, które Cię interesują, jak pokazano poniżej:
Z Wydarzeń możesz filtrować zdarzenia, które Cię interesują na podstawie kategorii zdarzeń, a następnie wybrać właściwości dla każdego zdarzenia, które chcesz pobrać. Ponadto możesz utworzyć niestandardowy filtr, aby zawęzić zakres przechwyconych zdarzeń, jak pokazano poniżej:
Pamięć Strona udostępnia różne opcje zapisywania wyników sesji zdarzeń rozszerzonych. W tym przykładzie zachowamy wyniki śledzenia w pliku Extended Events z ustawieniami skonfigurowanymi poniżej:
Po dostosowaniu sesji zdarzeń rozszerzonych do wymagań monitorowania kliknij przycisk OK przycisk, aby utworzyć sesję. Po utworzeniu sesji nie rozpocznie automatycznego przechwytywania zdarzeń, chyba że skonfigurujesz to podczas procesu tworzenia sesji. Aby sesja mogła rozpocząć przechwytywanie zdarzeń, kliknij utworzoną sesję prawym przyciskiem myszy i wybierz Rozpocznij sesję opcja, jak pokazano poniżej:
Aby wyświetlić przechwyconą sesję, możesz otworzyć fizyczny plik, który został wcześniej skonfigurowany do przechowywania zdarzeń, lub po prostu kliknąć prawym przyciskiem myszy utworzoną sesję i wybrać Obserwuj dane na żywo opcja, jak pokazano poniżej:
Otworzy się nowe okno, pokazujące zebrane zdarzenia z wartościami właściwości dla każdego zdarzenia, jak poniżej:
Chociaż możesz łatwo tworzyć zdarzenia rozszerzone za pomocą kilku kliknięć, nadal napotykasz pewne trudności podczas próby wyboru właściwego zdarzenia do monitorowania, ze względu na złożoność konwencji nazewnictwa zdarzeń, która utrudnia zrozumienie celu każdego zdarzenia. Ponadto GUI, w którym wyświetlane są informacje o sesji, nadal nie jest przyjazne dla użytkownika, co komplikuje analizę zdarzeń i ich właściwości. Od tego momentu rośnie zapotrzebowanie na bardziej przyjazne dla użytkownika narzędzie innych firm, które omówimy w następnej sekcji tego artykułu.
dbForge Event Profiler
dbForge Event Profiler dla SQL Server jest BEZPŁATNY narzędzie, które zapewnia możliwość przechwytywania i analizowania zdarzeń SQL Server oraz przechowywania danych o zdarzeniach w fizycznym pliku śledzenia w celu późniejszego zbadania.
dbForge Event Profiler dla SQL Server rozwiązuje problem obniżenia wydajności SQL Profiler, działając z najwyższą możliwą wydajnością i minimalnym obciążeniem serwera z pełną obsługą funkcji Extended Events.
To, co sprawia, że dbForge Event Profiler dla SQL Server jest atrakcyjnym narzędziem do profilowania zdarzeń w porównaniu z funkcją Extended Events, to Podświetlanie składni zapytania funkcja, która nie jest dostępna w funkcji SQL Profiler lub Extended Events. Ponadto zapewnia możliwość wykonywania filtrowania i sortowania operacje w siatce z wynikami śledzenia.
dbForge Event Profiler dla SQL Server może być łatwo używany do monitorowania różnych typów działań z SQL Server Database Engine, Analysis Services i Integration Services, rozwiązywanie problemów z zapytaniami T-SQL i transakcjami związanymi z wydajnością oraz monitorowanie różnych błędów SQL Server i ostrzeżenia.
Ponadto dbForge Event Profiler dla SQL Server może być używany do audytu różnych działań użytkowników bazy danych SQL Server lub wykonywania testów obciążeniowych lub testów zapewnienia jakości. Możesz także po prostu stworzyć własne niestandardowe ślady i zapisać je do wykorzystania w przyszłości.
Aby użyć dbForge Event Profiler dla SQL Server do przechwytywania zdarzeń SQL Server, musisz pobrać go ze strony pobierania dbForge za darmo i zainstalować na swoim SQL Server lub maszynie za pomocą prostego kreatora instalacji, jak poniżej :
Aby rozpocząć proces instalacji, kliknij ZAINSTALUJ przycisk z Witamy i określ lokalizację, w której chcesz zainstalować narzędzie, z Wybierz miejsce docelowe strona poniżej:
Po określeniu lokalizacji instalacji kliknij przycisk Dalej przycisk. W Skrótach określ, czy planujesz utworzyć ikonę skrótu do narzędzia dbForge na pulpicie, a następnie kliknij Dalej aby kontynuować:
W Powiązaniach plików zostaniesz poproszony o określenie rozszerzenia plików, które będą powiązane z narzędziem dbForge. Wybierz rozszerzenie dla plików, które zamierzasz otworzyć za pomocą tego narzędzia, a następnie kliknij Dalej aby kontynuować:
Na Optymalizacji uruchamiania stronę, przejrzyj i wybierz najlepszą opcję wykorzystania wydajności narzędzia, a następnie kliknij Dalej aby kontynuować:
Teraz rozpocznie się proces instalacji, w oparciu o dokonane wybory, z paskiem postępu pokazującym stan procesu instalacji, jak pokazano poniżej:
Po pomyślnym zakończeniu instalacji programu dbForge Event Profiler dla SQL Server, kreator powiadomi Cię i zapewni opcję uruchomienia narzędzia bezpośrednio po zamknięciu kreatora instalacji, jak poniżej:
Strona powitalna dbForge Event Profiler dla SQL Server jest przyjazna dla użytkownika i każdy zaznajomiony z SSMS może łatwo się do niej dostosować. Aby rozpocząć nowy ślad, kliknij Nowy opcja po prawej stronie narzędzia, jak poniżej:
W Zdarzeniach serwera profili w oknie, musisz podać informacje o połączeniu, które będą używane do łączenia się z instancją SQL Server, która będzie monitorowana. Jeśli jest to pierwsze uruchomienie narzędzia i nie ma wcześniej zapisanego połączenia, kliknij Nowe połączenie przycisk, jak pokazano poniżej:
W Menedżerze połączeń okno, Nowe przycisk przeniesie Cię do znanego okna połączenia, w którym zostaniesz poproszony o podanie nazwy instancji SQL Server, trybu uwierzytelniania oraz poświadczeń wymaganych do połączenia z SQL Server. Po podaniu informacji o połączeniu kliknij Testuj połączenie przycisk, aby sprawdzić, czy wprowadzone informacje są prawidłowe, jak pokazano poniżej:
Po podaniu informacji o połączeniu instancji SQL Server z listy przydatnych szablonów obsługujących większość funkcji śledzenia wybierz, czy chcesz użyć istniejącego szablonu, czy usuń zaznaczenie, aby określić listę zdarzeń, które chcesz przechwycić w następnym kroku. Możesz także określić właściwości pliku docelowego w następujący sposób:
O Wydarzeniach do przechwycenia znajdziesz przyjazną dla użytkownika i dobrze skategoryzowaną listę wydarzeń, które są opisane w znaczący sposób, bez potrzeby głębokiego nurkowania i próby zrozumienia ich znaczenia, jak pokazano poniżej:
Poniższy obrazek pokazuje również wszystkie dostępne kategorie wydarzeń wraz z liczbą wydarzeń w każdej kategorii. Teraz możesz cieszyć się zrozumieniem wszystkich dostępnych wydarzeń według nazwy kategorii, jak pokazano poniżej:
Po określeniu listy wydarzeń, które chcesz uchwycić, Działania Strona umożliwia określenie listy działań, które chcesz przechwycić w bieżącej sesji zdarzenia, jak pokazano poniżej:
Na Filtrach zdarzeń strony, możesz również narysować własne filtry, aby zminimalizować liczbę zebranych wierszy, aby dopasować je do swoich wymagań i ułatwić analizę, jak pokazano poniżej:
Kolumny Strona pozwala określić, które kolumny planujesz wyświetlić w bieżącej sesji zdarzeń. Pobieranie tylko kolumn zawierających informacje, które chcesz przechwycić, pomoże znacznie zminimalizować rozmiar pliku śledzenia i szerokość zwracanych wierszy, co ułatwi analizę przechwyconych danych, jak pokazano poniżej:
Po dostosowaniu sesji wydarzenia możesz rozpocząć przechwytywanie wydarzeń, klikając Wykonaj przycisk z poprzedniego obrazu. Po rozpoczęciu sesji zdarzeń narzędzie rozpocznie przechwytywanie i wyświetlanie zdarzeń bezpośrednio, jak pokazano poniżej:
Wielką zaletą jest to, że kliknięcie dowolnego zdarzenia spowoduje wyświetlenie jego pełnego opisu ze skryptem T-SQL wyświetlonym w przyjaznej dla użytkownika kolorowej czcionce w osobnym polu, co bardzo ułatwia sprawdzenie i analizę, jak pokazano poniżej:
Ponadto dbForge Event Profiler dla SQL Server może działać jako SSMS, zapewniając opcję napisania nowego zapytania T-SQL i wykonania go na podłączonej instancji SQL Server, jak pokazano poniżej:
Narzędzie wyświetla również zwrócone dane w przydatnej siatce, która pokazuje nazwę każdej kolumny, typ danych i wartość w następujący sposób:
Większość administratorów baz danych SQL Server napotkała sytuację, gdy próbowali wykonać duży plik SQL Server za pomocą SSMS, który nie powiódł się z powodu błędu OutOfMemory. dbForge Event Profiler dla SQL Server rozwiązuje ten problem, udostępniając funkcję wykonywania dowolnego dużego skryptu T-SQL w pliku SQL. Musisz tylko wybrać Wykonaj duży skrypt z menu Baza danych, a następnie wybierz lokalizację tego pliku skryptu, bazę danych, na której ten plik będzie wykonywany oraz kodowanie używane w tym pliku, jak pokazano poniżej:
Wniosek
Na podstawie wszystkich poprzednich przykładów można zobaczyć, jak BEZPŁATNE narzędzie innej firmy dbForge Event Profiler dla programu SQL Server może być używane do przechwytywania i analizowania różnych typów zdarzeń programu SQL Server przez przezwyciężenie wszystkich wad typowych narzędzi do przechwytywania zdarzeń. Jest BEZPŁATNY narzędzie i zdecydowanie warto z niego korzystać.