Inteligentna wydajność

Ukończone

Usługi SQL Server i Azure SQL obejmują automatyzację, aby zapewnić spójną wydajność aplikacji. Te możliwości automatyzacji są wspólnie nazywane inteligentną wydajnością.

Funkcje inteligentnej wydajności w usłudze Azure SQL obejmują inteligentne przetwarzanie zapytań, automatyczną korektę planu i automatyczne dostrajanie.

Przetwarzanie zapytań inteligentnych

Inteligentne przetwarzanie zapytań (IQP) to pakiet nowych funkcji wbudowanych w procesor zapytań. Należy je włączyć przy użyciu najnowszego poziomu zgodności bazy danych. Aplikacje mogą uzyskać wydajność przy użyciu najnowszego poziomu zgodności bazy danych. Nie są wymagane żadne zmiany w kodzie. Przykładowym zastosowaniem inteligentnego przetwarzania zapytań jest kompilacja odroczona na podstawie zmiennej tabeli, która pozwala przyspieszyć wykonywanie zapytań korzystających ze zmiennych tabeli.

Usługi Azure SQL Database i Azure SQL Managed Instance obsługują ten sam poziom zgodności bazy danych wymagany (150) do używania protokołu IQP jako programu SQL Server 2019 i nowszych wersji.

Automatyczna korekta planu

Regresje planu zapytania reprezentują jeden z największych problemów z wydajnością w programie SQL Server. Taka regresja występuje, gdy zapytanie jest kompilowane ponownie, a nowy plan ma gorszą wydajność.

W programie SQL Server 2017 i usłudze Azure SQL Database wprowadzono automatyczną korektę planu, która jest oparta na analizie danych w magazynie zapytań. Jeśli w bazie danych w programie SQL Server 2017 (lub nowszym) i usłudze Azure SQL Database jest włączony magazyn zapytań, aparat SQL Server wyszukuje regresje planu zapytania i udostępnia odpowiednie rekomendacje. Te zalecenia można zobaczyć w dynamicznym sys.dm_db_tuning_recommendations widoku zarządzania (DMV). Zawierają one instrukcje T-SQL umożliwiające ręczne wymuszenie takiego planu zapytania, który charakteryzuje się dobrą wydajnością.

Po sprawdzeniu tych rekomendacji można włączyć automatyczne wymuszanie planów w programie SQL Server w przypadku napotkania regresji. Włącz automatyczną korektę planu przy użyciu argumentu ALTER DATABASE AUTOMATIC_TUNING i .

W usłudze Azure SQL Database automatyczną korektę planu można również włączyć za pomocą opcji automatycznego dostrajania w witrynie Azure Portal lub za pośrednictwem interfejsów API REST. Rekomendacje automatycznej korekty planu są zawsze włączone, jeśli w bazie danych jest włączony magazyn zapytań (jest to ustawienie domyślne w usługach Azure SQL Database i Azure SQL Managed Instance). W przypadku nowych baz danych automatyczna korekta planu (FORCE_PLAN) jest domyślnie włączona dla usługi Azure SQL Database.

Automatyczne dostrajanie w usłudze Azure SQL Database

Automatyczna korekta planu to przykład automatycznego dostrajania w usługach Azure SQL i SQL Server, ale unikatowym aspektem automatycznego dostrajania dla usługi Azure SQL Database jest automatyczne indeksowanie.

Uwaga

Aktualnie automatyczne indeksowanie nie jest dostępne w usłudze SQL Managed Instance.

Chmura umożliwia firmie Microsoft udostępnianie dodatkowych usług w formie rekomendacji dotyczących wydajności i mechanizmów automatyzacji poza rekomendacjami w zakresie planu. Ta możliwość jest określana jako dostrajanie automatyczne dla usługi Azure SQL Database. Te usługi działają jako programy w tle, które analizują dane wydajności z wystąpienia usługi Azure SQL Database. Te usługi są uwzględniane w cenie każdej subskrypcji bazy danych.

Głównym scenariuszem automatycznego dostrajania są indeksy. Automatyczne dostrajanie analizuje dane telemetryczne bazy danych, w tym magazyn zapytań i dynamiczne widoki zarządzania, aby zalecić utworzenie indeksów, które mogą poprawić wydajność aplikacji. Ponadto możesz włączyć automatyczne dostrajanie w celu automatycznego tworzenia indeksów, które mogą zwiększyć wydajność zapytań. Automatyczne dostrajanie pozwala również monitorować zmiany indeksów i zalecać usuwanie lub automatycznie usuwać indeksy, które nie zwiększają wydajności zapytań.

W przypadku automatycznego dostrajania w usłudze Azure SQL Database przyjęto ostrożne podejście do rekomendowania indeksów. Oznacza to, że rekomendacje, które mogą pojawić się w widoku DMV, takim jak sys.dm_db_missing_index_details, lub plan pokazu zapytań, mogą nie być wyświetlane natychmiast jako zalecenia dotyczące automatycznego dostrajania. Usługi automatycznego dostrajania monitorują zapytania w czasie i używają algorytmów uczenia maszynowego do tworzenia zaleceń, aby naprawdę wpływać na wydajność zapytań.

Należy pamiętać, że funkcja automatycznego dostrajania dla zaleceń dotyczących indeksów nie uwzględnia żadnych narzutów związanych z wydajnością, które indeks może spowodować w takich operacjach, jak wstawianie, aktualizacja lub usuwanie. Zazwyczaj nowe indeksy nieklastrowane, które tworzy funkcja indeksów automatycznych, mają duży pozytywny wpływ na wydajność.

Zapytania sparametryzowane reprezentują dodatkowy scenariusz automatycznego dostrajania. Zapytania z wartościami niesparametryzowanymi mogą prowadzić do obciążenia związanego z wydajnością, ponieważ plan wykonania jest ponownie komkompilowany za każdym razem, gdy wartości niesparametryzowane są różne. 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.

Aby rozwiązać ten scenariusz, możesz użyć optymalizacji planu wrażliwego parametru (PSP). Optymalizacja PSP automatycznie włącza wiele aktywnych planów buforowanych dla pojedynczej instrukcji sparametryzowanej. Buforowane plany wykonywania są uwzględniane w różnych rozmiarach danych na podstawie wartości parametrów środowiska uruchomieniowego dostarczonego przez klienta.

Przykładowe indeksy z automatycznym dostrajaniem w usłudze Azure SQL Database

Poniżej znajdują się przykładowe, rekomendowane indeksy (w witrynie Azure Portal) dla bazy danych, utworzone na podstawie analizy obciążenia w czasie. Do piaskownicy usługi Azure SQL Database nie wysłano jeszcze wystarczającej liczby działań, aby wygenerować zalecenia podobne do tych. CREATE INDEX zalecenia są generowane wraz z upływem czasu, ponieważ obciążenie jest przechwytywane, a nie w niewielkim przedziale czasu w tym ćwiczeniu.

Zrzut ekranu przedstawiający powiadomienie o rekomendacji dotyczącej indeksu.

W witrynie Azure Portal w obszarze Przegląd wydajności można wyświetlić informacje o wydajności dla pięciu najważniejszych zapytań zużywających zasoby, jak znaleziono w magazynie zapytań. Istnieje również rekomendacja.

Zrzut ekranu przedstawiający przegląd wydajności zapytań.

Witryna Azure Portal udostępnia także narzędzie Szczegółowe informacje o wydajności zapytań, które pozwala tworzyć wizualne raporty oparte na magazynie zapytań. W tym przykładzie narzędzie Szczegółowe informacje o wydajności zapytań zawiera określone zapytanie zużywające najwięcej zasobów oraz porady dotyczące sposobu zwiększenia wydajności tego zapytania.

Zrzut ekranu przedstawiający narzędzie Szczegółowe informacje o wydajności zapytań.

Witryna Azure Portal również udostępnia bezpośrednie rekomendacje dotyczące wydajności.

Zrzut ekranu przedstawiający rekomendacje dotyczące wydajności.

Ten widok zawiera konkretne rekomendacje oraz historię akcji automatycznego dostrajania. W przypadku indeksów pokazywane są szczegóły indeksu i tabeli. Opcja Automatyzuj umożliwia automatyczne dostrajanie.

Zrzut ekranu przedstawiający opcje automatycznego dostrajania.

Opcje dostrajania automatycznego możesz ustawić na poziomie serwera bazy danych lub bazy danych. Jeśli w tym scenariuszu włączono automatyczne dostrajanie, indeks zostanie utworzony automatycznie.

Opcje automatycznego dostrajania można również wyświetlić za pomocą sys.database_automatic_tuning_options widoku DMV.

Uwaga

Zalecenia i automatyzacja dla indeksów i planów z uwzględnieniem parametrów nie są dostępne dla usługi Azure SQL Managed Instance ani programu SQL Server. Dostępna jest automatyczna korekta planu.

Jeśli wybierzesz rekomendowany indeks, uzyskasz więcej szczegółowych informacji o konkretnym indeksie.

Zrzut ekranu przedstawiający rekomendację dotyczącą tworzenia indeksu.

Zostaną wyświetlone szczegółowe informacje na temat wymaganego indeksu, tabeli i miejsca. Masz możliwość zastosowania rekomendowanego indeksu lub wyświetlenia skryptu języka T-SQL, który ma zastosowanie do indeksu.

Zrzut ekranu przedstawiający skrypt rekomendacji dotyczącej indeksu.

Zauważ, że indeks nie jest indeksem klastrowanym, który jest stosowany jako indeks online. Gdy indeks zostanie zastosowany na podstawie rekomendacji, zarówno ręcznie, jak i za pośrednictwem dostrajania automatycznego, aparat rekomendacji będzie również monitorować wydajność zapytania w danym okresie dla elementu z zastosowanym indeksem. W razie obniżenia wydajności zapytań w porównaniu do czasu sprzed zastosowania indeksu można usunąć indeks.

Test wiedzy

1.

Które stwierdzenie najlepiej opisuje inteligentne przetwarzanie zapytań (IQP)?

2.

Czy automatyczna korekta planu ułatwia wybór scenariusza wydajności oraz umożliwia rozwiązanie problemów z nim związanych?

3.

Jakie informacje są używane do rekomendowania i tworzenia indeksów przez funkcję automatycznego dostrajania usługi Azure SQL Database?