Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Poznawanie obciążenia SQL Server

Istnieje wiele czynników wpływających na wydajność bazy danych. Znajomość normalnych wahań konkretnej instancji poprzez monitorowanie serwera SQL pomaga zidentyfikować, kiedy zachowanie wymyka się spod kontroli i przewidzieć problemy, zanim się pojawią.

Pomaga również odróżnić naturalne problemy z rozwojem spowodowane zwiększonym obciążeniem pracą lub sezonowymi skokami, które mogą wymagać więcej zasobów, od głębszych problemów z wydajnością, które wymagają dostrajania kodu, optymalizacji indeksu lub dostrajania konfiguracji.

Po ustaleniu listy serwerów SQL w swoim środowisku będziesz chciał zadać kilka krytycznych pytań:

  • Jak zdrowa jest ta instancja?
  • Kiedy ostatni raz została utworzona kopia zapasowa?
  • Czy ma wystarczającą ilość procesora, pamięci i pamięci, aby spełnić warunki umowy SLA?
  • Jakie zadania są uruchamiane w tej instancji?
  • Jakie aplikacje i użytkownicy korzystają z tej instancji?
  • Kiedy obciążenie pracą jest największe?
  • Czy istnieje strategia przełączania awaryjnego?
  • Czy to jest instancja o znaczeniu krytycznym?
  • Czy musi być dostępny 24/7?
  • Jakie problemy z wydajnością ma ta instancja?

Te pytania mogą wydawać się oczywiste, ale jeśli zaczniesz monitorować obciążenia serwera SQL po raz pierwszy, będziesz zaskoczony i prawdopodobnie trochę przerażony, widząc, jak wiele z nich ma podstawowe problemy.

Ustaw cele wydajności dla monitorowania serwera SQL

Zastanów się, co chcesz osiągnąć dzięki monitorowaniu serwera SQL i ustal te cele według priorytetów. Określając swoje działania w kategoriach kluczowych wskaźników wydajności, ułatwiasz określenie wartości energii i wszelkich wymaganych inwestycji. Poniższa lista pozwoli Ci zacząć.

Wysoka dostępność

Jakie są twoje statystyki dostępności? Pamiętaj, że niedostępność dla użytkownika ma miejsce wtedy, gdy nie ma dostępu do usługi. Może to być spowodowane całkowitą awarią lub wąskim gardłem wydajności, które skutecznie uniemożliwia dostęp do usługi. Czy masz zawsze dostępną konfigurację? Jeśli tak, czy znasz jego status?

Czas odpowiedzi

Od momentu zgłoszenia problemu, jak szybko można wyizolować jego źródło, zdiagnozować objawy i zareagować na te, których dotyczy problem?

Czas rozwiązania

Jak szybko można rozwiązać problem, aby przywrócić normalne działanie? Rozwiązanie „lepki plaster” to ważny początek, ale nie powinien oznaczać końca sprawy. Czy poznałeś pierwotną przyczynę problemu? Czy możesz być pewien, że nie zobaczysz ponownego wystąpienia?

Zrozumienie kosztów posiadania instancji SQL Server

Koszt posiadania jest kluczowym czynnikiem przy podejmowaniu decyzji, gdzie powinny znajdować się instancje serwera SQL. Ważne jest, aby ocenić początkowe koszty inwestycyjne związane z infrastrukturą i licencjonowaniem, bieżące koszty utrzymania oraz wszelkie koszty oparte na zużyciu, które są związane z obciążeniem w chmurze.

Jeśli próbujesz zdecydować, ile będzie kosztować Twoja instancja w chmurze, krytyczne wskaźniki obejmują wykorzystanie procesora, aktywność odczytu i zapisu oraz pamięć. Będziesz musiał mierzyć je przez dłuższy czas, aby określić granice obciążenia pracą, aby upewnić się, że masz zasoby na spektrum obciążenia, jakiego oczekujesz dla konkretnej instancji.

Zapoznanie się z konkretnymi charakterystykami obciążeń działających w instancjach serwera SQL pozwoli Ci znaleźć się w znacznie lepszym miejscu, aby upewnić się, że wszystko działa tak, jak powinno, i spełniać zarówno obecne, jak i przyszłe potrzeby Twojej firmy.

Badanie wydajności w czasie za pomocą monitorowania serwera SQL

Bazy danych to płynne systemy. Bardzo niewiele ma stałe, powtarzalne i przewidywalne obciążenia. Znacznie częściej obserwuje się duże różnice w czasie, które zmieniają się w zależności od liczby użytkowników, zautomatyzowanych zadań, liczby transakcji, ilości danych itd.

Pod koniec miesiąca baza danych sprzedaży będzie zajęta. Zauważy również wzrost aktywności wokół wydarzeń sezonowych lub spowodowany promocjami marketingowymi.

Klasyfikowanie wydajności na podstawie małych migawek nie jest dobrą zasadą. Im więcej historii możesz zebrać i przeanalizować, tym więcej informacji na temat różnic i granic poszczególnych cech obciążeń możesz uzyskać.

Będziesz musiał ocenić, ile historii warto przechowywać i czy masz zasoby, aby ją przetworzyć. Należy wziąć pod uwagę wpływ na koszty i wydajność.

Uzyskaj pełny obraz do monitorowania bazy danych

Każda baza danych to złożony system z wieloma ruchomymi częściami. Wiele kryteriów konfiguracji może mieć wpływ na jego wydajność.

Projekt i architektura samej bazy danych będą miały wpływ na wyniki. Wydajność kodu może również zwiększyć lub zmniejszyć wydajność. Opcje konfiguracji określą, w jaki sposób instancja serwera SQL zużywa dostępne dla niej zasoby.

Rozważmy następujący scenariusz:Instancja zwalnia aż do zatrzymania, a administrator DBA wykrył skok w oczekiwaniu CXPACKET lub CXCONSUMER. Odruchową reakcją jest wyłączenie równoległości. Oczekiwania znikają, a obecne wąskie gardło chwilowo ustępuje. Teraz cała instancja działa wolniej, ale administrator DBA nie chce ponownie włączać równoległości. Gdyby przeprowadzono dalsze dochodzenie, okazałoby się, że zapytanie działało wyjątkowo wolno, a przyczyną był brak indeksu.

Równoległe monitorowanie wielu różnych wskaźników pomaga dokładnie zidentyfikować podstawową przyczynę i uniknąć kosztownej błędnej diagnozy, która może spowodować powtórzenie lub nawet eskalację tego samego problemu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz wartości wierszy T-SQL

  2. Porównanie dat zapisanych jako varchar

  3. Uzyskaj aktualną strefę czasową serwera w programie SQL Server (T-SQL)

  4. Różnica między CTE a SubQuery?

  5. T-SQL Jak dynamicznie tworzyć tabele w procedurach składowanych?