Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
Ale nie drugi zestaw wyników zawierający tabelę zmienia polecenia języka T-SQL:
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:
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 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
- 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
- Skrócony przewodnik dla dedykowanej puli SQL (dawniej SQL DW) w usłudze Azure Synapse Analytics