Distribution Advisor az Azure Synapse SQL-ben

A következőkre vonatkozik: Dedikált Azure Synapse Analytics SQL-készletek (korábban SQL DW)

Az Azure Synapse SQL-ben minden tábla az ügyfél által választott stratégiával van elosztva (Round Robin, Hash Distributed, Replikálva). A választott terjesztési stratégia jelentősen befolyásolhatja a lekérdezés teljesítményét.

Az Azure Synapse SQL Distribution Advisor (DA) funkciója elemzi az ügyfelek lekérdezéseit, és a táblák legjobb terjesztési stratégiáit javasolja a lekérdezési teljesítmény javítása érdekében. A tanácsadó által megfontolandó lekérdezéseket az ügyfél szolgáltathatja, vagy lektorozhatja a DMV-ben elérhető korábbi lekérdezésekből.

Megjegyzés:

A Distribution Advisor jelenleg előzetes verzióban érhető el az Azure Synapse Analyticshez. Az előzetes verziójú funkciók csak tesztelésre szolgálnak, és nem használhatók éles példányokon vagy éles adatokon. Előzetes verziójú funkcióként a Distribution Advisor viselkedésében vagy funkcióiban változásoknak kell alávetni magát. Ha az adatok fontosak, őrizze meg a tesztadatok másolatát is. A Distribution Advisor nem támogatja a többoszlopos elosztott táblákat.

Előfeltételek

  • Futtassa a T-SQL utasítást SELECT @@version, hogy meggyőződjön arról, hogy az Azure Synapse Analytics dedikált SQL-tárolója a 10.0.15669-es vagy újabb verzió. Ha a verzió alacsonyabb, az új verziónak automatikusan el kell érnie a kiépített dedikált SQL-készleteket a karbantartási ciklus során.

  • A tanácsadó futtatása előtt győződjön meg arról, hogy a statisztikák elérhetők és naprakészek. A statisztikai adatokkal kapcsolatos további részletekért a táblázatstatisztikák kezelése, a CREATE STATISTICS és az UPDATE STATISTICS cikkekben talál további információt.

  • Engedélyezze az Azure Synapse terjesztési tanácsadót az aktuális munkamenethez a SET RECOMMENDATIONS T-SQL paranccsal.

Számítási feladatok elemzése és terjesztési javaslatok létrehozása

Az alábbi oktatóanyag bemutatja a mintahasználati esetet az ügyfél-lekérdezések elemzéséhez és a legjobb terjesztési stratégiák ajánlásához a Distribution Advisor szolgáltatás használatával.

A Distribution Advisor csak a felhasználói táblákon futtatott lekérdezéseket elemzi.

1. A Distribution Advisor tárolt eljárásainak létrehozása

A tanácsadó egyszerű futtatásához hozzon létre két új tárolt eljárást az adatbázisban. Futtassa a GitHubról letölthető CreateDistributionAdvisor_PublicPreview szkriptet:

Command Leírás
dbo.write_dist_recommendation Meghatározza azokat a lekérdezéseket, amelyeken a DA elemezni fog. A lekérdezéseket manuálisan is megadhatja, vagy akár 100 korábbi lekérdezésből is olvashat a sys.dm_pdw_exec_requests tényleges számítási feladataiból.
dbo.read_dist_recommendation Futtatja a tanácsadót, és javaslatokat generál.

Íme egy példa arra, hogyan használhatja a tanácsadót.

2a. A tanácsadó futtatása a DMV-ben a korábbi munkaterhelésen

Futtassa a következő parancsokat a számítási feladat utolsó 100 lekérdezésének olvasásához elemzési és terjesztési javaslatokhoz:

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

Annak megtekintéséhez, hogy a DA mely lekérdezéseket elemezte, futtassa a GitHubról letölthető e2e_queries_used_for_recommendations.sql szkriptet.

2b. Az tanácsadó futtatása a kiválasztott lekérdezéseken

Az első paramétert dbo.write_dist_recommendation a következőre kell állítani 0, a második paraméter pedig egy pontosvesszővel tagolt lista, amely legfeljebb 100 lekérdezésből áll, amelyeket a DA elemezni fog. Az alábbi példában két pontosvesszővel elválasztott utasítás terjesztési javaslatát szeretnénk látni. select count (*) from t1;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. Javaslatok megtekintése

A dbo.read_dist_recommendation rendszer által tárolt eljárás a végrehajtás befejezésekor a következő formátumban adja vissza a javaslatokat:

oszlopnév Leírás
Table_name Az a tábla, amelyet a DA elemzett. Táblázatonként egy sor, a javaslat módosításától függetlenül.
Áramelosztás Aktuális táblaelosztási stratégia.
Ajánlott_Eloszlás Ajánlott eloszlás. Ez ugyanaz lehet, mint Current_Distribution, ha nincs javasolt módosítás.
Elosztás_Változtatás_Parancs CTAS T-SQL-parancs a javaslat implementálásához.

4. A tanács végrehajtása

  • Futtassa a Distribution Advisor által biztosított CTAS-parancsot, hogy új táblákat hozzon létre az ajánlott terjesztési stratégiával.
  • Módosítsa a lekérdezéseket úgy, hogy új táblákon fussanak.
  • Lekérdezések végrehajtása régi és új táblákon a teljesítménybeli fejlesztések összehasonlításához.

Megjegyzés:

A Terjesztési tanácsadó fejlesztéséhez töltse ki ezt a gyors felmérést.

Hibaelhárítás

Ez a szakasz gyakori hibaelhárítási forgatókönyveket és gyakori hibákat tartalmaz.

1. Megmaradt állapot a tanácsadó korábbi futtatásából

1a. Symptom:

Ez a hibaüzenet jelenik meg az tanácsadó futtatásakor:

Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1b. Enyhítés:
  • Ellenőrizze, hogy egyetlen idézőjelet használ-e a tanácsadó futtatásához a kiválasztott lekérdezéseken.
  • Indítson új munkamenetet az SSMS-ben, és futtassa a tanácsadót.

2. Hibák a tanácsadó futtatása során

2a. Symptom:

Az "eredmény" panel az alábbi CommandToInvokeAdvisorString-t mutatja, de az alábbi RecommendationOutput-t nem.

Például csak az Command_to_Invoke_Distribution_Advisor eredményhalmaz jelenik meg.

Képernyőkép egy T-SQL-eredmény kimenetéről, amelyen a Command_to_Invoke_Distribution_Advisor látható.

A táblázatot tartalmazó második eredményhalmaz azonban nem módosítja a T-SQL-parancsokat:

Képernyőkép egy T-SQL-eredmény kimenetéről, amelyen a Command_to_Invoke_Distribution_Advisor táblamódosítási T-SQL-parancsokat tartalmazó második eredményhalmaz látható.

2b. Enyhítés:
  • Ellenőrizze a CommandToInvokeAdvisorString fenti kimenetet.

  • Távolítsa el azokat a lekérdezéseket, amelyek már érvénytelenek lehetnek, és amelyek esetleg itt lettek hozzáadva a kézzel kiválasztott lekérdezésekből vagy a DMV-ből a következő záradék szerkesztésével WHERE : A DA által megfontolt lekérdezések.

3. Hiba a javaslat kimenetének utófeldolgozása során

3a. Symptom:

A következő hibaüzenet jelenik meg.

Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Enyhítés

Győződjön meg arról, hogy a GitHubon a tárolt eljárás legfrissebb verzióját használja:

Azure Synapse-termékcsoport visszajelzése

A Terjesztési tanácsadó fejlesztéséhez töltse ki ezt a gyors felmérést.

Ha a cikkben nem szereplő információkra van szüksége, az Azure Synapse Microsoft Q&A kérdésoldalán kereshet, ahol kérdéseket tehet fel más felhasználóknak és az Azure Synapse Analytics termékcsoportnak.

Aktívan figyeljük ezt a fórumot, és gondoskodunk róla, hogy tőlünk vagy egy másik felhasználótól választ kapjon a kérdéseire. Ha inkább a Stack Overflow-ról szeretne kérdéseket feltenni, az Azure Synapse Analytics Stack Overflow fóruma is megtalálható.

Funkciókérések esetén használja az Azure Synapse Analytics visszajelzési oldalát. A saját kéréseinek hozzáadása vagy más kérések támogatása segít nekünk abban, hogy a leginkább keresett funkciókra tudjunk összpontosítani.

Következő lépések