Poradce pro distribuci ve službě Azure Synapse SQL

Platí pro: Vyhrazené fondy SQL služby Azure Synapse Analytics (dříve SQL DW)

V Azure Synapse SQL se každá tabulka distribuuje pomocí strategie zvolené zákazníkem (kruhové dotazování, distribuovaná hodnota hash, replikovaná). Zvolená distribuční strategie může podstatně ovlivnit výkon dotazů.

Funkce Distribution Advisor (DA) služby Azure Synapse SQL analyzuje dotazy zákazníků a doporučuje nejlepší distribuční strategie pro tabulky za účelem zlepšení výkonu dotazů. Dotazy, které má poradce zvážit, může poskytnout zákazník nebo získat z historických dotazů dostupných v zobrazení dynamické správy.

Poznámka:

Distribution Advisor je aktuálně ve verzi Preview pro Azure Synapse Analytics. Funkce ve verzi Preview jsou určené jenom pro testování a neměly by se používat v produkčních instancích ani v produkčních datech. Jako funkce ve verzi Preview se nástroj Distribution Advisor může měnit chování nebo funkce. Pokud jsou data důležitá, uložte si také kopii testovacích dat. Distribution Advisor nepodporuje distribuované tabulky s více sloupci.

Požadavky

  • Spuštěním příkazu SELECT @@version T-SQL se ujistěte, že vyhrazený fond SQL služby Azure Synapse Analytics je verze 10.0.15669 nebo vyšší. Pokud je vaše verze nižší, měla by se nová verze během jejich cyklu údržby automaticky spojit se zřízenými vyhrazenými fondy SQL.

  • Před spuštěním poradce se ujistěte, že jsou statistiky dostupné a aktuální. Další podrobnosti najdete v článcích Správa statistik tabulek, CREATE STATISTICS a UPDATE STATISTICS .

  • Povolte distribučního poradce Azure Synapse pro aktuální relaci pomocí příkazu SET RECOMMENDATIONS T-SQL.

Analýza úloh a generování doporučení k distribuci

Následující kurz vysvětluje ukázkový případ použití funkce Distribution Advisor k analýze dotazů zákazníků a doporučení nejlepších distribučních strategií.

Distribution Advisor analyzuje pouze dotazy spuštěné v uživatelských tabulkách.

1. Vytvoření uložených procedur nástroje Distribution Advisor

Pokud chcete poradce spustit snadno, vytvořte v databázi dvě nové uložené procedury. Spusťte skript CreateDistributionAdvisor_PublicPreview, který je k dispozici ke stažení z GitHubu:

Příkaz Popis
dbo.write_dist_recommendation Definuje dotazy, na které bude da analyzovat. Dotazy můžete zadat ručně nebo můžete číst až z 100 minulých dotazů ze skutečných úloh v sys.dm_pdw_exec_requests.
dbo.read_dist_recommendation Spustí poradce a vygeneruje doporučení.

Tady je příklad, jak můžete poradce spustit.

2a. Spuštění poradce pro předchozí úlohu v zobrazení dynamické správy

Spuštěním následujících příkazů načtěte až posledních 100 dotazů v úloze pro účely analýzy a distribuce doporučení:

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

Pokud chcete zjistit, které dotazy da analyzoval, spusťte skript e2e_queries_used_for_recommendations.sql dostupný ke stažení z GitHubu.

2b. Spuštění poradce pro vybrané dotazy

První parametr by dbo.write_dist_recommendation měl být nastaven na 0hodnotu a druhý parametr je středník oddělený seznam až 100 dotazů, které da bude analyzovat. V následujícím příkladu chceme zobrazit doporučení distribuce pro dva příkazy oddělené středníky select count (*) from t1; a 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. Zobrazení doporučení

Po dokončení provádění vrátí systém uložená dbo.read_dist_recommendation procedura doporučení v následujícím formátu:

Název sloupce Popis
Table_name Tabulka, kterou da analyzoval. Jeden řádek na tabulku bez ohledu na změnu v doporučení.
Current_Distribution Aktuální strategie distribuce tabulek
Recommended_Distribution Doporučená distribuce. To může být stejné jako Current_Distribution v případě, že se nedoporučuje žádná změna.
Distribution_Change_Command Příkaz CTAS T-SQL pro implementaci doporučení

4. Provádění poradenství

  • Spuštěním příkazu CTAS, který poskytuje Distribution Advisor, vytvořte nové tabulky s doporučenou distribuční strategií.
  • Upravte dotazy tak, aby se spouštěly v nových tabulkách.
  • Spusťte dotazy na staré a nové tabulky, abyste mohli porovnat vylepšení výkonu.

Poznámka:

Abychom nám pomohli vylepšovat Distribuční poradce, vyplňte prosím tento rychlý průzkum.

Řešení problému

Tato část obsahuje běžné scénáře řešení potíží a běžné chyby, se kterými se můžete setkat.

1. Zastaralý stav z předchozího spuštění poradce

1a. Příznaky:

Při spuštění poradce se zobrazí tato chybová zpráva:

Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1b. Snížení rizika:
  • Ověřte, že ke spuštění poradce u vybraných dotazů používáte jednoduché uvozovky.
  • Spusťte novou relaci v nástroji SSMS a spusťte poradce.

2. Chyby při spuštění poradce

2a. Příznaky:

Podokno výsledek se zobrazí CommandToInvokeAdvisorString níže, ale nezobrazuje následující RecommendationOutput .

Zobrazí se například pouze sada Command_to_Invoke_Distribution_Advisor výsledků.

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

Ale ne druhá sada výsledků obsahující příkazy T-SQL tabulky:

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. Snížení rizika:
  • Zkontrolujte výstup CommandToInvokeAdvisorString výše.

  • Odeberte dotazy, které již nemusí být platné, které sem mohly být přidány z ručně vybraných dotazů nebo z zobrazení dynamické správy WHERE úpravou klauzule v: Dotazy považované da.

3. Chyba při následném zpracování výstupu doporučení

3a. Příznaky:

Zobrazí se následující chybová zpráva.

Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Snížení rizika:

Ujistěte se, že máte nejaktuálnější verzi uložené procedury z GitHubu:

Zpětná vazba produktové skupiny Azure Synapse

Abychom nám pomohli vylepšovat Distribuční poradce, vyplňte prosím tento rychlý průzkum.

Pokud potřebujete informace, které nejsou uvedené v tomto článku, vyhledejte na stránce pro otázky Microsoft Q&A azure Synapse místo, kde můžete klást otázky jiným uživatelům a produktové skupině Azure Synapse Analytics.

Toto fórum aktivně sledujeme, abychom zajistili, že vaši otázku zodpoví další uživatel nebo někdo z nás. Pokud dáváte přednost kladení otázek na Stack Overflow, máme také fórum Služby Stack Overflow služby Azure Synapse Analytics.

Pro žádosti o funkce použijte stránku Zpětné vazby ke službě Azure Synapse Analytics. Přidání vašich žádostí nebo up-voting jiných požadavků nám pomůže soustředit se na ty nejžádnější funkce.

Další kroky