| Termin | Definicja |
|---|---|
| Narzędzie SQLDiag | SQLDiag to narzędzie wiersza poleceń gromadzące logi, konfigurację i ślady wydajnościowe instancji SQL Server. Rola SQLDiag w diagnostyce SQL ServerSQLDiag to narzędzie wiersza poleceń przeznaczone do zbierania materiału diagnostycznego z instancji Microsoft SQL Server oraz z systemu Windows, na którym ta instancja działa. Nie służy do wykonywania zapytań biznesowych ani do naprawiania danych. Jego zadaniem jest zebranie w jednym zestawie informacji, które pomagają odtworzyć stan środowiska w chwili wystąpienia problemu, na przykład spadku wydajności, blokad, błędów połączeń lub nieoczekiwanego zatrzymania usługi. Zakres zbieranych danych zależy od użytej konfiguracji. W typowym scenariuszu mogą zostać zapisane logi błędów SQL Server, informacje o konfiguracji instancji, dane z dzienników zdarzeń systemu Windows, liczniki wydajności oraz ślady aktywności związane z działaniem serwera. Wynik nie jest pojedynczym plikiem tekstowym, lecz zestawem plików umieszczonych w określonym katalogu wyjściowym. Ich interpretacja wymaga powiązania czasu zdarzeń z konkretnymi komunikatami i obciążeniem systemu. Konfiguracja kolektorów i przebieg zbierania danychSQLDiag działa według definicji kolektorów zapisanej w pliku konfiguracyjnym XML. Konfiguracja określa między innymi, jakie źródła danych mają być odczytywane, gdzie mają trafić wyniki oraz przez jaki czas ma trwać zbieranie informacji. Dzięki temu można ograniczyć zakres diagnostyki do danych potrzebnych przy danym problemie albo przygotować szerszy pakiet do analizy incydentu. Przed uruchomieniem należy sprawdzić nazwę instancji, konto używane do wykonania procesu, dostęp do katalogu wynikowego oraz dostępność źródeł, z których mają być pobierane dane. Uprawnienia wpływają na kompletność raportu: narzędzie może utworzyć część plików, ale nie zebrać danych wymagających dostępu do określonych dzienników, liczników lub funkcji SQL Server. Istotne jest również zapewnienie wystarczającej ilości miejsca, ponieważ ślady wydajnościowe i logi mogą szybko zwiększać rozmiar pakietu. Okres działania powinien odpowiadać czasowi, w którym występuje problem. Zbyt krótka sesja może nie zarejestrować zdarzenia, natomiast długie zbieranie danych bez kontroli zakresu utrudnia analizę i generuje zbędne pliki. Po zakończeniu sesji należy zachować strukturę katalogów oraz informacje o użytej konfiguracji, ponieważ bez nich część wyników może być trudniejsza do prawidłowego odczytania. Jak czytać wyniki SQLDiagAnaliza danych z SQLDiag zaczyna się od osi czasu. Najpierw porównuje się moment zgłoszenia problemu z wpisami w dzienniku błędów SQL Server, dzienniku zdarzeń systemu Windows i zapisach liczników wydajności. Zgodność czasowa kilku niezależnych źródeł może wskazywać, czy przyczyną była awaria procesu, problem z zasobami systemowymi, przerwanie połączenia, przeciążenie wejścia-wyjścia czy długotrwałe oczekiwanie na blokadę. Sam wysoki poziom użycia procesora albo pamięci nie jest jeszcze dowodem przyczyny. Trzeba sprawdzić, czy wzrost obciążenia wystąpił przed błędem, równocześnie z nim, czy dopiero po nim. Podobnie wpis o błędzie w logu nie zawsze oznacza źródło incydentu; może być skutkiem wcześniejszego problemu z dyskiem, siecią, usługą systemową albo konfiguracją instancji. SQLDiag dostarcza dowodów do takiego porównania, ale nie zastępuje oceny planów zapytań, konfiguracji bazy, stanu plików danych ani testów wykonywanych w kontrolowanym środowisku. Ograniczenia i bezpieczne wykorzystanie narzędziaSQLDiag jest narzędziem diagnostycznym, a nie programem do automatycznej optymalizacji SQL Server. Nie naprawia blokad, nie zmienia planów zapytań, nie odbudowuje indeksów i nie przywraca uszkodzonych baz. Zebrany materiał powinien być traktowany jako zapis stanu systemu, który trzeba zestawić z objawami, zmianami wykonanymi przed awarią oraz informacjami o topologii i obciążeniu instancji. Przy pracy z tym narzędziem należy unikać przypadkowego modyfikowania pliku XML bez sprawdzenia składni i znaczenia poszczególnych sekcji. Nieprawidłowa konfiguracja może spowodować brak oczekiwanych danych albo zebranie materiału nieprzydatnego dla konkretnego incydentu. W przypadku problemów z komputerem, na którym uruchomiono narzędzia administracyjne SQL Server, diagnostyka sprzętu i systemu powinna obejmować między innymi stan pamięci operacyjnej, dysku, sterowników, usług Windows i komunikacji sieciowej. Dla serwera SQL Server właściwy wniosek wymaga jednak osobnej analizy administracyjnej, ponieważ objaw widoczny w aplikacji klienckiej może powstawać poza samym procesem SQL Server. |