Usługa Distribution Advisor w usłudze Azure Synapse SQL

Dotyczy: dedykowane pule SQL usługi Azure Synapse Analytics (dawniej SQL DW)

W usłudze Azure Synapse SQL każda tabela jest dystrybuowana przy użyciu strategii wybranej przez klienta (działanie okrężne, rozproszone skróty, replikowane). Wybrana strategia dystrybucji może znacząco wpływać na wydajność zapytań.

Funkcja Doradca dystrybucji (DA) usługi Azure Synapse SQL analizuje zapytania klientów i zaleca najlepsze strategie dystrybucji tabel w celu zwiększenia wydajności zapytań. Zapytania, które mają być brane pod uwagę przez doradcę, mogą być udostępniane przez klienta lub pobierane z historycznych zapytań dostępnych w widoku DMV.

Uwaga

Usługa Distribution Advisor jest obecnie dostępna w wersji zapoznawczej usługi Azure Synapse Analytics. Funkcje w wersji zapoznawczej są przeznaczone tylko do testowania i nie powinny być używane w wystąpieniach produkcyjnych ani danych produkcyjnych. W ramach funkcji w wersji zapoznawczej doradca dystrybucji podlega zmianom w zachowaniu lub funkcjonalności. Zachowaj również kopię danych testowych, jeśli dane są ważne. Usługa Distribution Advisor nie obsługuje tabel rozproszonych wielokolumnach.

Wymagania wstępne

  • Wykonaj instrukcję SELECT @@version języka T-SQL, aby upewnić się, że dedykowana pula SQL usługi Azure Synapse Analytics jest w wersji 10.0.15669 lub nowszej. Jeśli twoja wersja jest niższa, nowa wersja powinna automatycznie uzyskać dostęp do zaaprowizowanych dedykowanych pul SQL podczas ich cyklu konserwacji.

  • Przed uruchomieniem doradcy upewnij się, że statystyki są dostępne i aktualne. Aby uzyskać więcej informacji, zobacz Artykuły Zarządzanie statystykami tabel, CREATE STATISTICS i UPDATE STATISTICS, aby uzyskać więcej informacji na temat statystyk.

  • Włącz doradcę dystrybucji usługi Azure Synapse dla bieżącej sesji za pomocą polecenia SET RECOMMENDATIONS T-SQL.

Analizowanie obciążenia i generowanie zaleceń dotyczących dystrybucji

W poniższym samouczku wyjaśniono przykładowy przypadek użycia funkcji Doradca dystrybucji do analizowania zapytań klientów i rekomendowania najlepszych strategii dystrybucji.

Usługa Distribution Advisor analizuje tylko zapytania uruchamiane w tabelach użytkowników.

1. Tworzenie procedur składowanych klasyfikatora dystrybucji

Aby łatwo uruchomić doradcę, utwórz dwie nowe procedury składowane w bazie danych. Uruchom skrypt CreateDistributionAdvisor_PublicPreview dostępny do pobrania z usługi GitHub:

Polecenie opis
dbo.write_dist_recommendation Definiuje zapytania, na których będzie analizowany da. Zapytania można udostępniać ręcznie lub odczytywać z maksymalnie 100 poprzednich zapytań z rzeczywistych obciążeń w sys.dm_pdw_exec_requests.
dbo.read_dist_recommendation Uruchamia doradcę i generuje zalecenia.

Oto przykład sposobu uruchamiania doradcy.

2a. Uruchamianie doradcy w przypadku przeszłego obciążenia w widoku DMV

Uruchom następujące polecenia, aby odczytać maksymalnie 100 ostatnich zapytań w obciążeniu na potrzeby zaleceń dotyczących analizy i dystrybucji:

EXEC dbo.write_dist_recommendation <Number of Queries max 100>, NULL
go
EXEC dbo.read_dist_recommendation;
go

Aby sprawdzić, które zapytania zostały przeanalizowane przez da, uruchom skrypt e2e_queries_used_for_recommendations.sql dostępny do pobrania z usługi GitHub.

2b. Uruchamianie doradcy w wybranych zapytaniach

Pierwszy parametr w dbo.write_dist_recommendation pliku powinien być ustawiony na 0, a drugi parametr jest rozdzieloną średnikami listą maksymalnie 100 zapytań, które da będzie analizować. W poniższym przykładzie chcemy zobaczyć zalecenie dystrybucji dla dwóch instrukcji rozdzielonych średnikami select count (*) from t1; i select * from t1 join t2 on t1.a1 = t2.a1;.

EXEC dbo.write_dist_recommendation 0, 'select count (*) from t1; select * from t1 join t2 on t1.a1 = t2.a1;'
go
EXEC dbo.read_dist_recommendation;
go

3. Wyświetlanie zaleceń

Procedura dbo.read_dist_recommendation składowana systemu zwróci zalecenia w następującym formacie po zakończeniu wykonywania:

Nazwa kolumny Opis
Nazwa_tabeli Tabela, która została przeanalizowana przez da. Jeden wiersz na tabelę niezależnie od zmiany w rekomendacji.
Current_Distribution Bieżąca strategia dystrybucji tabel.
Recommended_Distribution Zalecana dystrybucja. Może to być takie samo, jak Current_Distribution w przypadku braku zalecanej zmiany.
Distribution_Change_Command Polecenie języka T-SQL CTAS w celu zaimplementowania zalecenia.

4. Implementowanie porad

  • Uruchom polecenie CTAS dostarczone przez doradcę dystrybucji, aby utworzyć nowe tabele z zalecaną strategią dystrybucji.
  • Zmodyfikuj zapytania, aby działały w nowych tabelach.
  • Wykonywanie zapytań dotyczących starych i nowych tabel w celu porównania pod kątem poprawy wydajności.

Uwaga

Aby pomóc nam ulepszyć doradcę dystrybucji, wypełnij tę szybką ankietę.

Rozwiązywanie problemów

Ta sekcja zawiera typowe scenariusze rozwiązywania problemów i typowe błędy, które mogą wystąpić.

1. Nieaktualny stan z poprzedniego uruchomienia doradcy

1a. Objaw:

Ten komunikat o błędzie jest wyświetlany podczas uruchamiania doradcy:

Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1b. Środki zaradcze:
  • Sprawdź, czy używasz pojedynczych cudzysłowów "", aby uruchomić doradcę w przypadku wybranych zapytań.
  • Uruchom nową sesję w programie SSMS i uruchom doradcę.

2. Błędy podczas uruchamiania doradcy

2a. Objaw:

Okienko "result" jest wyświetlane CommandToInvokeAdvisorString poniżej, ale nie pokazuje poniższego RecommendationOutput .

Na przykład zobaczysz tylko Command_to_Invoke_Distribution_Advisor zestaw wyników.

Screenshot of the output of a T-SQL result showing the Command_to_Invoke_Distribution_Advisor.

Ale nie drugi zestaw wyników zawierający tabelę zmienia polecenia języka T-SQL:

Screenshot of the output of a T-SQL result showing the Command_to_Invoke_Distribution_Advisor with a second resultset containing table change T-SQL commands.

2b. Środki zaradcze:
  • Sprawdź dane wyjściowe powyższych CommandToInvokeAdvisorString .

  • Usuń zapytania, które mogą nie być już prawidłowe, które mogły zostać dodane w tym miejscu z ręcznie wybranych zapytań lub z widoku DMV, edytując WHERE klauzulę w: Zapytania rozważane przez da.

3. Błąd podczas przetwarzania końcowego danych wyjściowych rekomendacji

3a. Objaw:

Zostanie wyświetlony następujący komunikat o błędzie.

Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Środki zaradcze:

Upewnij się, że masz najnowszą wersję procedury składowanej z usługi GitHub:

Opinie dotyczące grupy produktów usługi Azure Synapse

Aby pomóc nam ulepszyć doradcę dystrybucji, wypełnij tę szybką ankietę.

Jeśli potrzebujesz informacji, które nie zostały podane w tym artykule, wyszukaj stronę pytań i odpowiedzi firmy Microsoft dotyczącą usługi Azure Synapse , aby zadawać pytania innym użytkownikom i grupie produktów usługi Azure Synapse Analytics.

Firma Microsoft aktywnie monitoruje to forum, aby mieć pewność, że użytkownicy uzyskują odpowiedzi od innych użytkowników lub pracowników firmy Microsoft. Jeśli wolisz zadawać pytania w witrynie Stack Overflow, mamy również forum usługi Azure Synapse Analytics Stack Overflow.

W przypadku żądań funkcji użyj strony opinii usługi Azure Synapse Analytics. Dodanie żądań lub głosowania w górę innych żądań pomaga nam skupić się na najbardziej wymagających funkcjach.

Następne kroki