Sdílet prostřednictvím


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 zákazník poskytnout, nebo je lze získat z historických dotazů dostupných v DMV.

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 stát dostupnou pro vaše předem nakonfigurované vyhrazené fondy SQL.

  • Před spuštěním poradce se ujistěte, že jsou dostupné statistiky a up-to-date. Pro více podrobností o statistikách si přečtěte články 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 CreateDistributionAdvisor_PublicPreview skript dostupný ke stažení z GitHubu:

Příkaz Popis
dbo.write_dist_recommendation Definuje dotazy, 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. Spusťte poradce pro minulou zátěž 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 e2e_queries_used_for_recommendations.sql skript dostupný ke stažení z GitHubu.

2b. Spusťte poradce pro vybrané dotazy

První parametr v dbo.write_dist_recommendation by měl být nastaven na 0, a druhý parametr je středníkem-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
Název_tabulky Tabulka, kterou DA analyzovala. Jeden řádek na tabulku bez ohledu na změnu v doporučení.
Aktuální_Distribuce Aktuální strategie distribuce tabulek
Doporučené_rozdělení Doporučená distribuce. To může být stejné jako Current_Distribution v případě, že se nedoporučuje žádná změna.
Příkaz_pro_změnu_distribuce 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émů

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říznak:

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. Zmírnění:
  • 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říznak:

V podokně výsledku se zobrazuje CommandToInvokeAdvisorString níže, ale níže se nezobrazuje RecommendationOutput.

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

Snímek obrazovky s výstupem výsledku T-SQL zobrazující Command_to_Invoke_Distribution_Advisor

Nikoli však druhá sada výsledků, která obsahuje příkazy T-SQL pro změnu tabulky:

Snímek obrazovky s výstupem výsledku T-SQL zobrazující Command_to_Invoke_Distribution_Advisor s druhou sadou výsledků obsahujícími příkazy T-SQL pro změnu tabulky

2b. Zmírnění:
  • Zkontrolujte výše uvedený výstup CommandToInvokeAdvisorString.

  • Odeberte dotazy, které již nemusí být platné a které sem mohly být přidány buď z ručně vybraných dotazů nebo z DMV úpravou klauzule v: Dotazy posuzované DA.

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

3a. Příznak:

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

Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Zmírnění:

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 Azure Synapse Analytics na Stack Overflow.

Pro žádosti o funkce použijte stránku Zpětné vazby ke službě Azure Synapse Analytics . Přidání vašich žádostí nebo hlasování pro jiné žádosti nám pomůže soustředit se na nejžádanější funkce.

Další kroky