Udostępnij za pośrednictwem


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

Dotyczy: Dedykowane pule SQL dla Azure Synapse Analytics (poprzednio SQL DW)

W usłudze Azure Synapse SQL każda tabela jest dystrybuowana przy użyciu strategii wybranej przez klienta (Round Robin, Rozproszony skrótowo, Replikowany). 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 wyłącznie do celów testowych i nie powinny być używane w środowiskach produkcyjnych ani z danymi produkcyjnymi. 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 wielokolumnowych tabel rozproszonych.

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 dotrzeć do zaaprowizowanych dedykowanych pul SQL w czasie cyklu ich konserwacji.

  • Upewnij się, że statystyki są dostępne i up-tozaktualizowane przed uruchomieniem doradcy. 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. Utwórz procedury składowane doradcy 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:

Komenda Opis
dbo.write_dist_recommendation Definiuje zapytania, które DA będzie analizować. Zapytania można podawać ręcznie lub odczytywać do 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. Uruchom doradcę na podstawie dotychczasowego obciążenia w DMV

Uruchom następujące polecenia, aby przeczytać do 100 ostatnich zapytań w obciążeniu roboczym na potrzeby analizy i zaleceń dotyczących 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. Uruchom doradcę dla wybranych zapytań

Pierwszy parametr w dbo.write_dist_recommendation powinien być ustawiony na 0, a drugi parametr jest listą rozdzielaną średnikami, zawierającą maksymalnie 100 zapytań, które DA będzie analizować. W poniższym przykładzie chcemy zobaczyć rekomendację dotyczącą dystrybucji dla dwóch wyrażeń 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 składowana w systemie 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.
Aktualny_Rozkład Bieżąca strategia dystrybucji tabel.
Zalecana_dystrybucja Zalecana dystrybucja. Może to być takie samo, jak Current_Distribution w przypadku braku zalecanej zmiany.
Komenda_Zmiany_Dystrybucji Polecenie CTAS w języku T-SQL 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. Zastany 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. Łagodzenia:
  • Sprawdź, czy używasz pojedynczych cudzysłowów "", aby uruchomić doradcę w przypadku wybranych zapytań.
  • Rozpocznij nową sesję w programie SSMS i uruchom Advisor.

2. Błędy podczas uruchamiania doradcy

2a. Objaw:

Okienko "wynik" pokazuje CommandToInvokeAdvisorString poniżej, ale nie pokazuje RecommendationOutput.

Zobaczysz tylko zestaw wyników Command_to_Invoke_Distribution_Advisor na przykład.

Zrzut ekranu przedstawiający wynik działania T-SQL z Command_to_Invoke_Distribution_Advisor.

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

Zrzut ekranu wyniku w języku T-SQL przedstawiający Command_to_Invoke_Distribution_Advisor z drugim zestawem wyników zawierającym polecenia T-SQL zmiany tabeli.

2b. Łagodzenia:
  • Sprawdź dane wyjściowe CommandToInvokeAdvisorString powyżej.

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

3. Błąd podczas obróbki końcowej 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. Łagodzenia:

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 próśb o funkcje użyj strony Azure Synapse Analytics Feedback. Dodawanie swoich zgłoszeń lub głosowanie na inne zgłoszenia pomaga nam skupić się na najbardziej pożądanych funkcjach.

Następne kroki