Monitorowanie wydajności bazy danych

Ukończone

Główna część technik rozwiązywania problemów, których należy użyć do rozwiązywania problemów z wydajnością bazy danych, pozostaje taka sama w usłudze Azure SQL.

Wszystkie narzędzia, które są zwykle używane do monitorowania i rozwiązywania problemów z programem SQL Server, mają również zastosowanie do programu SQL Server uruchomionego na maszynie wirtualnej platformy Azure, w tym narzędzi, takich jak monitor wydajności. Jednak ze względu na charakter platformy jako usługi (PaaS) usługi Azure SQL Database i Azure SQL Managed Instance udostępniają inny zestaw narzędzi. Następnie zapoznamy się z konkretnymi narzędziami dla ofert PaaS platformy Azure i ich funkcjonalności.

Porównanie wyników wydajności z punktem odniesienia

Proces ustanawiania punktu odniesienia zwykle rozpoczyna się znacznie przed rzeczywistą migracją bazy danych. Obejmuje to zebranie kompleksowego zestawu pomiarów danych, które odzwierciedlają standardową wydajność bazy danych w oryginalnym środowisku. Te pomiary mogą obejmować, ale nie są ograniczone do użycia procesora CPU, czasów odpowiedzi, współczynników transakcji i współczynników błędów.

Ten punkt odniesienia służy jako punkt odniesienia, w którym można porównać wydajność zmigrowanej bazy danych. Jednak ocena lub porównanie tych danych bazowych z metrykami wydajności migrowanej bazy danych odbywa się tylko po zakończeniu migracji.

Po migracji wydajność nowego środowiska bazy danych jest monitorowana i mierzona. Te metryki po migracji są następnie porównywane z punktem odniesienia przed migracją w celu zidentyfikowania wszelkich rozbieżności lub problemów z wydajnością. To porównanie pomaga zrozumieć, czy migracja miała negatywny wpływ na wydajność bazy danych, czy też istnieją obszary wymagające optymalizacji pod kątem lepszej wydajności.

Automatyczne dostrajanie

Automatyczne dostrajanie to funkcja, która stale uczy się na podstawie obciążenia, identyfikuje potencjalne problemy i ulepszenia oraz oferuje rekomendacje oparte na danych magazynu zapytań. Dostosowuje się do zmian w planach wykonywania spowodowanych modyfikacjami schematu lub indeksu lub aktualizacjami danych.

Możesz ręcznie zastosować zalecenia dotyczące dostrajania w witrynie Azure Portal lub zezwolić na automatyczne dostrajanie autonomiczne stosowanie zaleceń dotyczących dostrajania. W usłudze Azure SQL Database może również zwiększyć wydajność zapytań przez dostrajanie indeksów.

Automatyczna korekta planu

Za pomocą magazynu zapytań aparat bazy danych może wykryć, kiedy plany wykonywania zapytań ulegają pogorszeniu wydajności. Chociaż można ręcznie zidentyfikować plan o regresji za pośrednictwem interfejsu użytkownika, magazyn zapytań udostępnia również opcję automatycznego powiadamiania.

Screenshot of the Query Store view for regressed plan correction.

W danym przykładzie obok pola Identyfikator planu 1 zostanie wyświetlony znacznik wyboru wskazujący, że plan jest wymuszony.

Po włączeniu automatycznego dostrajania aparat bazy danych automatycznie wymusi wszelkie sugerowane plany wykonywania zapytań w następujących warunkach:

  • Współczynnik błędów poprzedniego planu przekracza wartość zalecanego planu
  • Szacowany przyrost procesora CPU przekracza 10 sekund
  • Wymuszony plan przewyższa poprzedni plan

W przypadku wymuszenia automatycznego planowania aparat bazy danych stosuje ostatni dobry plan i monitoruje jego wydajność. Jeśli plan wymuszony nie działa lepiej niż poprzedni plan, jest niewymuszony i zostanie skompilowany nowy plan. Jeśli przewyższa poprzedni plan, pozostanie wymuszony do momentu ponownego skompilowania.

Użyj następującego zapytania T-SQL, aby włączyć automatyczną korektę planu.

ALTER DATABASE [WideWorldImporters] SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON);

Rekomendacje dotyczące automatycznego dostrajania można wyświetlać za pomocą dynamicznego widoku zarządzania, sys.dm_db_tuning_recommendations. Ten dynamiczny widok zarządzania zawiera szczegóły rekomendacji, typy i stany. Aby sprawdzić, czy automatyczne dostrajanie jest włączone dla bazy danych, zapoznaj się z widokiem sys.database_automatic_tuning_options.

Automatyczne dostrajanie dla usługi Azure SQL Managed Instance obsługuje tylko funkcję FORCE LAST GOOD PLAN.

Aby włączyć powiadomienia dotyczące automatycznego dostrajania, zobacz Powiadomienia e-mail dotyczące automatycznego dostrajania

Automatyczne zarządzanie indeksami

Usługa Azure SQL Database obsługuje automatyczne dostrajanie indeksów. Oznacza to, że w czasie baza danych ma możliwość poznania istniejących obciążeń i udostępnienia zaleceń dotyczących dodawania lub usuwania indeksów w celu zapewnienia lepszej wydajności. Podobnie jak wymuszanie ulepszonych planów zapytań, bazę danych można skonfigurować tak, aby umożliwić automatyczne tworzenie lub usuwanie indeksów w zależności od istniejącej wydajności indeksu.

Screenshot of Automatic tuning Options for Azure SQL Database.

Alternatywnie użyj następującego zapytania, aby wyświetlić funkcje automatycznego dostrajania włączone w bazie danych.

SELECT name,
    desired_state_desc,
    actual_state_desc,
    reason_desc
FROM sys.database_automatic_tuning_options

Tworzenie indeksu intensywnie obciąża zasoby, a pomyślne utworzenie ma kluczowe znaczenie dla zapewnienia negatywnego wpływu na obciążenia.

Usługa Azure SQL Database monitoruje zasoby potrzebne do automatycznego implementowania nowych indeksów, aby zapobiec pogorszeniu wydajności. Akcja dostrajania jest opóźniona, dopóki zasoby nie staną się dostępne, na przykład gdy zasoby potrzebne dla istniejących obciążeń uniemożliwiają tworzenie indeksu.

Eksplorowanie szczegółowych informacji o wydajności zapytań

Początkowa faza każdego zadania optymalizacji wydajności bazy danych obejmuje wskazanie zapytań, które są najbardziej intensywnie obciążające zasoby. W poprzednich wersjach programu SQL Server wymaga to rozbudowanego śledzenia i zestawu skomplikowanych skryptów SQL, dzięki czemu proces zbierania danych jest żmudny.

Identyfikowanie problematycznych zapytań

Usługa Azure SQL Database oferuje narzędzie o nazwie Szczegółowe informacje o wydajności zapytań, które umożliwia administratorowi szybkie zarządzanie kosztownymi zapytaniami. Znajduje się on w głównym bloku usługi Azure SQL Database w sekcji Inteligentna wydajność .

Szczegółowe informacje o wydajności zapytań w usłudze Azure SQL Database udostępnia trzy opcje filtrowania: w przypadku długotrwałych zapytań, zapytań zużywających największe zasoby (które są domyślne) lub filtru niestandardowego. Wyświetla pięć pierwszych zapytań posortowanych według wybranego zasobu, takich jak procesor CPU, we/wy danych lub we/wy dziennika. Możesz przejść do szczegółów poszczególnych zapytań, wybierając wiersz w dolnej siatce. Każdy wiersz jest oznaczony odrębnym kolorem zgodnym z kolorem wykresu słupkowego.

Screenshot of Query Performance Insights dashboard from Azure portal.

Karta niestandardowa zapewnia większą elastyczność niż inne opcje. Umożliwia to bardziej dostosowane badanie danych wydajności z kilkoma menu rozwijanymi wpływającymi na wizualizację danych. Kluczowe metryki obejmują procesor CPU, we/wy dziennika, we/wy danych i pamięć, które są aspektami wydajności ograniczonymi przez warstwę usługi i zasoby obliczeniowe usługi Azure SQL Database.

Screenshot of a custom dashboard in Query Performance Insight.

Jeśli przejdziemy do szczegółów pojedynczego zapytania, możemy zobaczyć identyfikator zapytania i samą kwerendę, a także typ agregacji zapytania i skojarzony okres.

Screenshot of the details of Query ID 3204 in Query Performance Insight.

Chociaż szczegółowe informacje o wydajności zapytań nie pokazują planu wykonywania zapytania, możesz szybko zidentyfikować to zapytanie i użyć informacji, aby wyodrębnić plan z magazynu zapytań w bazie danych.

Alerty

Alerty wydajności dla baz danych w usłudze Azure SQL Database można skonfigurować przy użyciu witryny Azure Portal. Te alerty mogą otrzymywać powiadomienia za pośrednictwem poczty e-mail lub wywołać element webhook, gdy określona metryka (na przykład rozmiar bazy danych lub użycie procesora CPU) osiągnie próg.

Proces konfigurowania alertów jest podobny między usługą SQL Database i wystąpieniem zarządzanym SQL. Aby skonfigurować alerty wydajności dla usługi Azure SQL Database, przejdź do sekcji Monitorowanie i wybierz pozycję Alerty. W tym miejscu należy ustanowić nową regułę alertu, zdefiniować warunek i utworzyć grupę akcji.

Aby uzyskać więcej informacji na temat alertów dotyczących usługi Azure SQL Managed Instance, zobacz Tworzenie alertów dla usługi Azure SQL Managed Instance przy użyciu witryny Azure Portal. Jeśli interesuje Cię usługa Azure SQL Database, zobacz Tworzenie alertów dla usług Azure SQL Database i Azure Synapse Analytics przy użyciu witryny Azure Portal.

Usługa Azure SQL Szczegółowe informacje

Usługa Azure SQL Szczegółowe informacje ulepsza środowisko monitorowania, zapewniając interaktywne i gotowe do użycia wizualizacje. Zbieranie i częstotliwość telemetrii można dostosować oraz połączyć dane z wielu źródeł w jedno środowisko monitorowania. Zachowuje również zestaw metryk w czasie, co pozwala zbadać problemy z wydajnością, które mogły wystąpić w przeszłości.

Ważne

Zalecamy skonfigurowanie usługi Azure SQL Szczegółowe informacje dopiero po tym, jak zmigrowana baza danych została w pełni zintegrowana z produkcją. Zapobiega to przechwytywaniu hałaśliwych danych podczas fazy migracji i testowania.

Aby rozpocząć pracę z usługą SQL Szczegółowe informacje, potrzebna jest dedykowana maszyna wirtualna, która monitoruje i zdalnie zbiera dane z serwerów SQL. Ta dedykowana maszyna wirtualna musi mieć zainstalowane następujące składniki:

  • Agent usługi Azure Monitor
  • Rozszerzenie Szczegółowe informacje obciążenia

Ponadto do skonfigurowania Szczegółowe informacje SQL są wymagane następujące składniki.

Profil monitorowania — grupowanie serwerów, wystąpień lub baz danych do monitorowania.

Obszar roboczy usługi Log Analytics — miejsce wysyłania danych monitorowania SQL do.

Ustawienia kolekcji — można dostosować zbieranie danych dla profilu. Ustawienia domyślne obejmują większość scenariuszy monitorowania i zwykle nie trzeba ich zmieniać.

Zdarzenia rozszerzone

Narzędzie Zdarzenia rozszerzone to niezawodny system monitorowania, który przechwytuje szczegółowe działanie serwera i bazy danych. Filtry można stosować w celu zmniejszenia nakładu pracy związanego z zbieraniem danych i skupienia się na konkretnych problemach z wydajnością. Wszystkie oferty usługi Azure SQL obsługują zdarzenia rozszerzone.

Chociaż konfiguracja zdarzeń rozszerzonych jest podobna w programie SQL Server, usłudze Azure SQL Database i usłudze Azure SQL Managed Instance, ten moduł koncentruje się na różnicach, a nie na uczeniu procesu instalacji.

Poniżej przedstawiono kilka kluczowych różnic podczas konfigurowania zdarzeń rozszerzonych w usłudze Azure SQL Database:

  • Transact-SQL: podczas wykonywania CREATE EVENT SESSION polecenia w programie SQL Server należy użyć klauzuli ON SERVER . Jednak w usłudze Azure SQL Database należy użyć klauzuli ON DATABASE . Klauzula ON DATABASE dotyczy ALTER EVENT SESSION również poleceń języka DROP EVENT SESSION Transact-SQL. Usługa Azure SQL Database obsługuje tylko sesje o zakresie bazy danych.

  • Sesje w zakresie bazy danych: zdarzenia rozszerzone są oparte na modelu izolacji pojedynczej dzierżawy w usłudze Azure SQL Database. Sesja zdarzeń w jednej bazie danych nie może uzyskać dostępu do danych ani zdarzeń z innej bazy danych. Nie można wydać CREATE EVENT SESSION instrukcji w kontekście bazy danych master.

  • Magazyn: ponieważ nie masz dostępu do systemu plików serwera, na którym znajduje się baza danych w usłudze Azure SQL Database, możesz skonfigurować miejsce docelowe konta magazynu do przechowywania rozszerzonych sesji zdarzeń.