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 az Azure Synapse Analytics dedikált SQL-készlete a 10.0.15669-es vagy újabb verzió legyen. 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 Standard kiadás T 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:
Parancs | 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 az tanácsadót, és javaslatokat hoz létre. |
Íme egy példa arra, hogyan futtathatja a tanácsadót.
2a. Az tanácsadó futtatása a DMV-ben a korábbi számítási feladatokon
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:
Oszlop neve | Ismerteté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. |
Current_Distribution | Aktuális táblaterjesztési stratégia. |
Recommended_Distribution | Ajánlott eloszlás. Ez ugyanaz lehet, mintha Current_Distribution nem lenne javasolt módosítás. |
Distribution_Change_Command | 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. Elavult állapot a tanácsadó korábbi futtatásából
1a. Hibajelenség:
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. Mitigation:
- Ellenőrizze, hogy egyetlen idézőjelet használ-e a tanácsadó futtatásához a kiválasztott lekérdezéseken.
- Indítsa el az új munkamenetet az SSMS-ben, és futtassa az tanácsadót.
2. Hibák a tanácsadó futtatása során
2a. Hibajelenség:
Az "eredmény" panel alább látható CommandToInvokeAdvisorString
, de nem az RecommendationOutput
alábbiakat jeleníti meg.
Például csak az Command_to_Invoke_Distribution_Advisor
eredményhalmaz jelenik meg.
A táblázatot tartalmazó második eredményhalmaz azonban nem módosítja a T-SQL-parancsokat:
2b. Mitigation:
Ellenőrizze a fenti kimenetet
CommandToInvokeAdvisorString
.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. Hibajelenség:
A következő hibaüzenet jelenik meg.
Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Mitigation:
Győződjön meg arról, hogy a GitHubon a tárolt eljárás legfrissebb verzióját használja:
e2e_queries_used_for_recommendations.sql-szkript letölthető a GitHubról
CreateDistributionAdvisor_PublicPreview.sql-szkript letölthető a GitHubról
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 kérések hozzáadása vagy az egyéb kérések felvételével a legigényesebb funkciókra összpontosíthatunk.
További lépések
- Standard kiadás T-JAVASLATOK (Transact-SQL)
- Adatok betöltése dedikált SQL-készletbe
- Adatbetöltési stratégiák dedikált SQL-készlethez az Azure Synapse Analyticsben.
- Dedikált SQL-készlet (korábban SQL DW) architektúra az Azure Synapse Analyticsben
- Az Azure Synapse Analytics dedikált SQL-készletének (korábbi nevén SQL DW) csalólapja