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.
Ale nie drugi zestaw wyników zawierający tabelę zmienia polecenia języka T-SQL:
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:
skrypt e2e_queries_used_for_recommendations.sql dostępny do pobrania z usługi GitHub
skrypt CreateDistributionAdvisor_PublicPreview.sql dostępny do pobrania 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
- USTAWIANIE ZALECEŃ (Transact-SQL)
- Ładowanie danych do dedykowanej puli SQL
- Strategie ładowania danych dla dedykowanej puli SQL w usłudze Azure Synapse Analytics.
- Architektura dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics
- Ściągawka dla dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics