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 0
hodnotu 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ů.
Ale ne druhá sada výsledků obsahující příkazy T-SQL tabulky:
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:
e2e_queries_used_for_recommendations.sql script dostupný ke stažení z GitHubu
CreateDistributionAdvisor_PublicPreview.sql script dostupný ke stažení 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
- NASTAVENÍ DOPORUČENÍ (Transact-SQL)
- Načítání dat do vyhrazeného fondu SQL
- Strategie načítání dat pro vyhrazený fond SQL ve službě Azure Synapse Analytics
- Architektura vyhrazeného fondu SQL (dříve SQL DW) ve službě Azure Synapse Analytics
- Tahák pro vyhrazený fond SQL (dříve SQL DW) ve službě Azure Synapse Analytics