Zalecenia dotyczące wydajności usługi Database Advisor dla usługi Azure SQL Database

Dotyczy:Azure SQL Database

Usługa Azure SQL Database uczy się i dostosowuje się do aplikacji. Usługa Azure SQL Database oferuje szereg doradców baz danych, które udostępniają dostosowane zalecenia, które umożliwiają maksymalizację wydajności. Ci doradcy bazy danych stale oceniają i analizują historię użycia oraz udostępniają rekomendacje na podstawie wzorców obciążeń, które pomagają poprawić wydajność.

Omówienie wydajności

Omówienie wydajności w witrynie Azure Portal zawiera podsumowanie wydajności bazy danych i ułatwia dostrajanie wydajności i rozwiązywanie problemów.

  • Jeśli jest obecny, kafelek Rekomendacje zawiera podział zaleceń dotyczących dostrajania dla bazy danych. Wybranie tego kafelka spowoduje przejście do opcji rekomendacji dotyczących wydajności.
  • Kafelek Działanie dostrajania zawiera podsumowanie bieżących i ukończonych akcji dostrajania dla bazy danych, co zapewnia szybki wgląd w historię działania dostrajania. Wybranie tego kafelka spowoduje przejście do zaleceń i historii dostrajania bazy danych. Aby uzyskać więcej informacji, zobacz automatyczne dostrajanie.
  • Kafelek Automatyczne dostrajanie pokazuje konfigurację automatycznego dostrajania dla bazy danych (opcje dostrajania, które są automatycznie stosowane do bazy danych). Wybranie tego kafelka spowoduje otwarcie okna dialogowego konfiguracji automatyzacji. Aby uzyskać więcej informacji na temat automatycznego dostrajania indeksów bazy danych i planów wykonywania zapytań, zobacz automatyczne dostrajanie.
  • Kafelek Zapytania bazy danych zawiera podsumowanie wydajności zapytań dla bazy danych (ogólne użycie jednostek DTU i zapytania zużywające najwięcej zasobów). Wybranie tego kafelka spowoduje przejście do szczegółowych informacji o wydajności zapytań.
  • Wykres domyślny zawiera podsumowanie ostatnich 24 godzin aktywności bazy danych z opcjami powiększania najnowszych działań. Skumulowane wykresy słupków analizują najważniejsze zapytania według procesora CPU, a graf wielowierszowy reprezentuje obciążenie według procesora CPU, operacji we/wy danych i operacji we/wy dziennika. Wybierz poszczególne skumulowane słupki na wykresie, z których każdy reprezentuje buforowany plan zapytania. Poznaj stronę Szczegółowe informacje o wydajności zapytań i zidentyfikuj najdroższe zapytania w obciążeniu. Aby uzyskać więcej informacji, zobacz Wydajność zapytań Szczegółowe informacje.

Przejdź do strony Przegląd wydajności w obszarze Inteligentna wydajność w menu nawigacji witryny Azure Portal dla bazy danych Azure SQL Database.

Screenshot from the Azure portal of the Performance Overview for Azure SQL Database.

Opcje rekomendacji dotyczących wydajności

Opcje zaleceń dotyczących wydajności dostępne w usłudze Azure SQL Database to:

Zalecenie dotyczące wydajności Obsługa pojedynczej bazy danych i bazy danych w puli Obsługa bazy danych wystąpień
Tworzenie zaleceń dotyczących indeksów — zaleca tworzenie indeksów, które mogą poprawić wydajność obciążenia. Tak Nie.
Rekomendacje dotyczące usuwania indeksów — zaleca codzienne usuwanie nadmiarowych i zduplikowanych indeksów, z wyjątkiem unikatowych indeksów i indeksów, które nie były używane przez długi czas (>90 dni). Należy pamiętać, że ta opcja nie jest zgodna z aplikacjami przy użyciu przełączania partycji i wskazówek dotyczących indeksu. Usuwanie nieużywanych indeksów nie jest obsługiwane w przypadku warstw premium i Krytyczne dla działania firmy usług. Tak Nie.
Parametryzowanie zaleceń dotyczących zapytań (wersja zapoznawcza) — zaleca wymuszone parametryzację w przypadkach, gdy masz co najmniej jedno zapytanie, które stale jest ponownie komilowane, ale kończy się tym samym planem wykonywania zapytania. Tak Nie.
Rozwiązywanie zaleceń dotyczących problemów ze schematem (wersja zapoznawcza) — Rekomendacje poprawek schematu są wyświetlane, gdy usługa Azure SQL Database zauważy anomalię w liczbie błędów SQL związanych ze schematem występujących w bazie danych. Firma Microsoft obecnie oznacza przestarzałe zalecenia dotyczące rozwiązywania problemów ze schematem. Tak Nie.

A screenshot from the Azure portal showing sample performance recommendations for Azure SQL Database.

Aby zastosować zalecenia dotyczące wydajności, zobacz stosowanie zaleceń. Aby wyświetlić stan zaleceń, zobacz Monitorowanie operacji.

Możesz również znaleźć pełną historię akcji dostrajania, które zostały zastosowane w przeszłości.

Tworzenie zaleceń dotyczących indeksu

Usługa Azure SQL Database stale monitoruje uruchamiane zapytania i identyfikuje indeksy, które mogą zwiększyć wydajność. Po wystarczających pewność, że brakuje określonego indeksu, zostanie utworzone nowe zalecenie Tworzenie indeksu .

Usługa Azure SQL Database zwiększa pewność, szacując wzrost wydajności, jaki może przynieść indeks. W zależności od szacowanego zwiększenia wydajności poziom zaleceń jest klasyfikowany jako wysoki, średni lub niski.

Indeksy tworzone przy użyciu rekomendacji są zawsze oflagowane jako indeksy utworzone automatycznie. Aby sprawdzić, które indeksy zostały automatycznie utworzone, zobacz widok sys.indexes. Automatycznie utworzone indeksy nie blokują poleceń ALTER/RENAME.

Jeśli spróbujesz usunąć kolumnę z automatycznie utworzonym indeksem, polecenie zostanie przekazane. Automatycznie utworzony indeks również zostanie porzucony za pomocą polecenia . Regularne indeksy blokują polecenie ALTER/RENAME w kolumnach, które są indeksowane.

Po zastosowaniu zalecenia dotyczącego tworzenia indeksu usługa Azure SQL Database porównuje wydajność zapytań z wydajnością punktu odniesienia. Jeśli nowy indeks poprawi wydajność, zalecenie zostanie oznaczone jako pomyślne, a raport wpływu będzie dostępny. Jeśli indeks nie poprawi wydajności, zostanie on automatycznie przywrócony. Usługa Azure SQL Database używa tego procesu w celu zapewnienia, że rekomendacje zwiększają wydajność bazy danych.

Każde zalecenie dotyczące tworzenia indeksu ma zasady wycofywania, które nie zezwalają na stosowanie rekomendacji, jeśli użycie zasobów bazy danych lub puli jest wysokie. Zasady wycofywania uwzględniają procesor CPU, we/wy danych, we/wy dziennika i dostępny magazyn.

Jeśli procesor CPU, we/wy danych lub we/wy dziennika jest wyższy niż 80% w ciągu poprzednich 30 minut, zalecenie tworzenia indeksu zostanie odroczone. Jeśli dostępny magazyn będzie niższy niż 10% po utworzeniu indeksu, zalecenie przejdzie w stan błędu. Jeśli po kilku dniach automatyczne dostrajanie nadal uważa, że indeks byłby korzystny, proces rozpoczyna się ponownie.

Ten proces powtarza się, dopóki nie będzie wystarczającej ilości dostępnego magazynu do utworzenia indeksu lub dopóki indeks nie będzie już postrzegany jako korzystny.

Usuwanie zaleceń dotyczących indeksu

Oprócz wykrywania brakujących indeksów usługa Azure SQL Database stale analizuje wydajność istniejących indeksów. Jeśli indeks nie jest używany, usługa Azure SQL Database rekomenduje usunięcie go. Usunięcie indeksu jest rekomendowane w dwóch przypadkach:

  • Indeks jest duplikatem innego indeksu (ta sama indeksowana i uwzględniona kolumna, schemat partycji i filtry).
  • Indeks nie był używany przez dłuższy czas (>90 dni).

Po wdrożeniu rekomendacje dotyczące indeksu są również przekazywane przez weryfikację. Jeśli wydajność wzrośnie, zostanie udostępniony raport wpływu. Jeśli wydajność spadnie, rekomendacja zostanie wycofana.

Parametryzowanie zaleceń dotyczących zapytań (wersja zapoznawcza)

Rekomendacje dotyczące parametryzacji zapytań są wyświetlane, gdy masz co najmniej jedno zapytanie, które stale jest ponownie komilowane, ale kończy się tym samym planem wykonywania zapytania. Ten warunek tworzy możliwość zastosowania wymuszonej parametryzacji. Z kolei wymuszona parametryzacja umożliwia buforowanie i ponowne używanie planów zapytań w przyszłości, co zwiększa wydajność i zmniejsza użycie zasobów.

Każde zapytanie należy początkowo skompilować, aby wygenerować plan wykonania. Każdy wygenerowany plan jest dodawany do pamięci podręcznej planu. Kolejne wykonania tego samego zapytania mogą ponownie używać tego planu z pamięci podręcznej, co eliminuje konieczność dodatkowej kompilacji.

Zapytania z wartościami niesparametryzowanymi mogą zmniejszać wydajność, ponieważ plan wykonania jest ponownie kompilowany przy każdej zmianie wartości niesparametryzowanych. Te same zapytania z różnymi wartościami parametrów w wielu przypadkach generują te same plany wykonania. Jednak plany te i tak są dodawane oddzielnie do pamięci podręcznej planów.

Proces ponownego kompilowania planów wykonania powoduje zużycie zasobów bazy danych, wydłużenie czasu wykonywania zapytań i przepełnienie pamięci podręcznej planów. To z kolei prowadzi do wykluczenia planów z pamięci podręcznej. To zachowanie można zmienić, ustawiając opcję wymuszonej parametryzacji w bazie danych.

Aby ułatwić oszacowanie wpływu tego zalecenia, podano porównanie rzeczywistego użycia procesora CPU i przewidywanego użycia procesora CPU (tak jak w przypadku zastosowania zalecenia). To zalecenie może pomóc w uzyskaniu oszczędności procesora CPU. Może również pomóc w skróceniu czasu trwania zapytań i narzucie pamięci podręcznej planu, co oznacza, że więcej planów może pozostać w pamięci podręcznej i ponownie użyć. To zalecenie można zastosować szybko, wybierając polecenie Zastosuj .

Po zastosowaniu tego zalecenia włączy wymuszoną parametryzację w ciągu kilku minut w bazie danych. Rozpoczyna proces monitorowania, który trwa około 24 godzin. Po upływie tego okresu można zobaczyć raport weryfikacji. Ten raport przedstawia użycie procesora CPU bazy danych przez 24 godziny przed i po zastosowaniu zalecenia. Usługa Azure SQL Database Advisor ma mechanizm bezpieczeństwa, który automatycznie przywraca zastosowane zalecenie w przypadku wykrycia regresji wydajności.

Rozwiązywanie zaleceń dotyczących problemów ze schematem (wersja zapoznawcza)

Ważne

Firma Microsoft obecnie oznacza przestarzałe zalecenia dotyczące rozwiązywania problemów ze schematem. Zalecamy korzystanie z inteligentnego Szczegółowe informacje do monitorowania problemów z wydajnością bazy danych, w tym problemów ze schematem, które zostały wcześniej omówione w zaleceniach dotyczących rozwiązywania problemów ze schematem.

Rozwiązywanie problemów ze schematem jest wyświetlane, gdy usługa Azure SQL Database zauważy anomalię w liczbie błędów SQL związanych ze schematem występujących w bazie danych. To zalecenie zwykle pojawia się, gdy baza danych napotka wiele błędów związanych ze schematem (nieprawidłowa nazwa kolumny, nieprawidłowa nazwa obiektu itd.) w ciągu godziny.

"Problemy ze schematem" to klasa błędów składniowych. Występują one, gdy definicja zapytania SQL i definicja schematu bazy danych nie są wyrównane. Na przykład jedna z kolumn oczekiwanych przez zapytanie może brakować w tabeli docelowej lub na odwrót.

Zalecenie "Rozwiąż problem ze schematem" jest wyświetlane, gdy usługa Azure SQL Database zauważy anomalię w liczbie błędów SQL związanych ze schematem występujących w bazie danych. W poniższej tabeli przedstawiono błędy związane z problemami ze schematem:

Kod błędu SQL Wiadomość
201 Procedura lub funkcja "" oczekuje parametru "", który nie został podany.
207 Nieprawidłowa nazwa kolumny '*'.
208 Nieprawidłowa nazwa obiektu '*'.
213 Nazwa kolumny lub liczba podanych wartości nie jest zgodna z definicją tabeli.
2812 Nie można odnaleźć procedury składowanej "*".
8144 Procedura lub funkcja * ma zbyt wiele określonych argumentów.

Aplikacje niestandardowe

Deweloperzy mogą rozważyć tworzenie niestandardowych aplikacji przy użyciu zaleceń dotyczących wydajności usługi Azure SQL Database. Wszystkie zalecenia wymienione w portalu dla bazy danych można uzyskać za pośrednictwem interfejsu API Get-AzSqlDatabaseRecommendedAction .

Następne kroki

  • Aby uzyskać więcej informacji na temat automatycznego dostrajania indeksów bazy danych i planów wykonywania zapytań, zobacz Automatyczne dostrajanie usługi Azure SQL Database.
  • Aby uzyskać więcej informacji na temat automatycznego monitorowania wydajności bazy danych za pomocą zautomatyzowanej diagnostyki i analizy głównej przyczyny problemów z wydajnością, zobacz Azure SQL Intelligent Szczegółowe informacje.
  • Zobacz Szczegółowe informacje wydajności zapytań, aby dowiedzieć się więcej o wpływie na wydajność najważniejszych zapytań i wyświetlić ich wpływ.