| Termin | Definicja |
|---|---|
| CPU usage SQL Server | CPU usage SQL Server to wskaźnik obciążenia procesora generowanego przez procesy tego systemu zarządzania bazami danych. CPU usage SQL Server jako miara obciążenia procesoraCPU usage SQL Server określa udział czasu procesora zużywany przez instancję Microsoft SQL Server podczas wykonywania operacji. Wartość ta nie jest pojedynczym parametrem opisującym kondycję całego serwera, ponieważ obciążenie może pochodzić również z systemu operacyjnego, sterowników, usług dodatkowych albo innych aplikacji. W praktyce analizuje się więc zarówno czas procesora przypisany do zapytań SQL Server, jak i całkowite użycie CPU widoczne w systemie Windows. Wysokie użycie procesora może wynikać z intensywnego wykonywania zapytań, kompilowania planów wykonania, sortowania, agregowania, szyfrowania, obsługi indeksów lub przetwarzania dużej liczby równoległych żądań. Sama wartość procentowa nie wskazuje jeszcze przyczyny problemu. Krótkotrwały wzrost podczas zaplanowanego zadania może być prawidłowym zachowaniem, natomiast długotrwałe obciążenie połączone z opóźnieniami zapytań wymaga dalszej diagnostyki. Jak SQL Server mierzy pracę procesorówSQL Server korzysta z harmonogramów wewnętrznych, które przydzielają wykonywanie zadań wątkom pracującym na procesorach logicznych. Informacje o tych harmonogramach można analizować między innymi za pomocą widoku dynamicznego Do oceny zapytań obciążających CPU służy także widok Najczęstsze przyczyny wysokiego CPU w SQL ServerJedną z przyczyn jest nieefektywny plan wykonania. SQL Server może wykonywać skanowanie dużej tabeli zamiast użyć selektywnego indeksu, przetwarzać nadmiarowe wiersze albo wykonywać kosztowne operacje sortowania i łączenia. Znaczenie ma również aktualność statystyk, ponieważ optymalizator zapytań wykorzystuje je do szacowania liczby wierszy. Błędne oszacowanie może prowadzić do wyboru planu wymagającego znacznie większej pracy procesora. Obciążenie może także rosnąć wskutek nieprawidłowo napisanych zapytań, powtarzanych kompilacji, dużej liczby krótkich wywołań lub niewłaściwie użytej równoległości. W SQL Server zapytanie może zostać rozdzielone na kilka wątków, gdy koszt planu przekroczy skonfigurowany próg równoległości. Zwiększenie liczby wątków nie zawsze poprawia wydajność, ponieważ może jednocześnie zwiększyć konkurencję o CPU i ograniczyć zasoby dostępne dla innych zapytań. Analiza powinna obejmować tekst zapytania, plan wykonania, częstotliwość uruchamiania i czas CPU przypadający na pojedyncze wykonanie. Nie każda powolność związana z wysokim użyciem procesora jest problemem samego SQL Server. Opóźnienia mogą być następstwem presji pamięci, operacji wejścia-wyjścia, blokad albo oczekiwania na inne zasoby. Dlatego korelacja CPU usage z czasem trwania zapytań, typami oczekiwań i aktywnością dysków jest ważniejsza niż pojedynczy odczyt procentowy. Warto też porównać obciążenie w czasie, aby ustalić, czy wzrost występuje stale, cyklicznie czy tylko po uruchomieniu określonego procesu. Diagnostyka i ograniczanie obciążenia CPUDiagnostykę rozpoczyna się od ustalenia zakresu problemu: czy wysokie CPU dotyczy całej maszyny, czy przede wszystkim procesu SQL Server, oraz czy koreluje z konkretnymi zapytaniami. Następnie porównuje się dane z Działania naprawcze zależą od potwierdzonej przyczyny. Mogą obejmować zmianę zapytania, utworzenie właściwego indeksu, aktualizację statystyk, ograniczenie niepotrzebnych kompilacji albo korektę ustawień równoległości. Każdą zmianę należy ocenić po wdrożeniu, ponieważ obniżenie CPU jednego zapytania może zwiększyć obciążenie dysku, pamięci lub czasu trwania innych operacji. W środowisku z SQL Server potrzebna jest zatem analiza konkretnej instancji, obciążenia i planów wykonania, a nie mechaniczne reagowanie na samą wartość CPU usage. Przy diagnostyce komputera, na którym działa oprogramowanie wykorzystujące SQL Server, sprawdza się również temperatury procesora, stabilność zasilania, działanie układu chłodzenia oraz poprawność pracy systemu Windows. Przegrzewanie może powodować obniżanie częstotliwości procesora, co wydłuża wykonywanie zadań i może zmieniać sposób interpretacji obciążenia. Ocena sprzętu i oprogramowania powinna być prowadzona rozdzielnie, aby nie przypisywać problemu SQL Server komponentowi, który działa prawidłowo. |