Lekérdezési teljesítmény elemzése

Amikor a lekérdezések futnak, az Azure Databricks lekérdezési teljesítmény betekintéseket ad vissza, amelyek jelzik a teljesítményjavítási lehetőségeket, és jelentik azokat az optimalizálásokat, amelyeket már alkalmazott. Minden betekintés tartalmaz egy javaslatot, amire reagálhatsz, például kis fájlok tömörítését, statisztikák gyűjtését vagy egy raktár méretének átalakítását.

Elemzések és javaslatok keresése a lekérdezéshez

Az elemzések megjelennek a lekérdezési előzményekben és a lekérdezési profilban. A lekérdezés részletei panel az elemzések összegzését jeleníti meg, a teljes tevékenység időtartamára gyakorolt becsült hatásuk alapján rangsorolva. A lekérdezésprofil Teljesítményelemzés lapja az egyes megállapítások teljes részleteit jeleníti meg.

Optimalizálás Genie-kóddal

Ha egy lekérdezés végrehajtható megállapításokkal rendelkezik, válassza az Optimalizálás lehetőséget a Genie Code megnyitásához. A lekérdezésmódosítást igénylő megállapítások esetében a Genie Code újraírja a lekérdezést, és bemutatja a módosításokat a jóváhagyáshoz. Táblázat- vagy számítási módosításokat tartalmazó megállapítások esetén a Genie Code egyszerű nyelvű szövegként összegzi az ajánlott műveleteket.

A Genie Code használatával kapcsolatos további információkért lásd a Genie Code-ot.

Lekérdezésoptimalizálási elemzések

COVERAGE_FILTER_KEYS_CLUSTERING

A táblázatot egy vagy több olyan kulcs csoportosítja , amelyek nem használhatók a szűrőkben a táblázat vizsgálata során.

Ajánlás: Szűrők hozzáadása a fürtözési kulcsokon az olvasási bájtok csökkentése érdekében.

COVERAGE_FILTER_KEYS_PARTITIONING

A táblát egy vagy több olyan kulcs particionálja , amelyek nem használhatók a szűrőkben a táblázat vizsgálata során.

Javaslat: Szűrők hozzáadása a particionálási kulcsokon az olvasási bájtok csökkentése érdekében.

COVERAGE_PHOTON

A Photon nem tudja felgyorsítani ezt a műveletet, ezért a lekérdezés a standard futtatókörnyezeti motort használja.

Ajánlás: Tekintse át a Photon korlátozásait , és módosítsa a lekérdezést egy támogatott végrehajtási útvonal használatára.

EXPLODING_JOIN

Az illesztés jelentősen több sort eredményez, mint amennyit olvas.

Ajánlás: Határozza meg, hogy melyik eredményrészkészletre van szüksége, majd frissítse az illesztés feltételét, vagy csökkentse a bemeneti sorok számát mindkét kapcsolatból.

FLOW_FULL_RECOMPUTE

A folyamatteljes újrafordításként fut.

Ajánlás: Írja át a lekérdezést növekményes támogatás céljából az olvasási bájtok csökkentése érdekében.

REDUNDANT_AGGREGATION

Az összesítő művelet nem módosította a lekérdezés eredményét.

Ajánlás: Távolítsa el az összesítést, vagy alkalmazzon elsődleges és idegenkulcs-korlátozásokat.

REDUNDANT_JOIN

A külső csatlakozás nem változtatta meg a külső oldal sorszámát, és a kapcsolt táblázatból nem használtak oszlopokat.

Ajánlás: Távolítsd el a csatlakozást, vagy alkalmazz elsődleges kulcsot vagy egyedi korlátozásokat.

SELECTIVE_JOIN

Az illesztés lényegesen kevesebb sort eredményez, mint amennyit beolvas.

Javaslat: Határozza meg, hogy melyik eredményrészkészletre van szüksége, majd adjon hozzá szűrőket az illesztés előtt a bemeneti sorok csökkentése érdekében.

WIDE_PROJECTION

A lekérdezés a tábla összes oszlopát megjeleníti.

Javaslat: csak azokat az oszlopokat Project, amelyekre az olvasási bájtok csökkentéséhez szükség van.

Adatelrendezési elemzések

EGYIDEJŰ_ÍRÁS

A táblába történő egyidejű írások automatikusan feloldott vagy sikertelen ütközéseket okoznak.

Ajánlás: Az egyidejű írások azonosításához és az ütemezés módosításához tekintse át a Delta-előzményeket az ütközések elkerülése érdekében.

COVERAGE_STATS_DELTA

A deltaadatok kihagyási statisztikái hiányoznak vagy hiányosak a táblaszkennelési fájlszűrők esetében, ezért a lekérdezés fájlon belüli szűrést használ.

Az egyes szűrők statisztikai állapota az alábbiak egyike lehet:

  • Teljes: A statisztikák az összes szűrőhöz elérhetők.
  • Részleges: A statisztikák a szűrők egy részhalmazához érhetők el.
  • Elérhető: A statisztikák egyetlen szűrőhöz sem érhetők el.
  • Használatlan: A statisztikák nem használhatók, mert a szűrő átalakítja az adattípust.

Javaslat:Delta-statisztikák gyűjtése az olvasási bájtok számának csökkentése érdekében.

COVERAGE_STATS_OPTIMIZER

A költségalapú optimalizáló statisztikák hiányoznak vagy hiányosak, ezért a lekérdezési terv szabványos heurisztikus megoldásokat használ.

Javaslat:Statisztikák összegyűjtése , amelyekkel az optimalizáló jobb tervet hozhat létre.

DATA_FILE_SIZE

A táblázat szkennelése sok kis fájlt olvas, ami növeli a szkennelési időt.

Recommendations:

DATA_SKEW

Az adatok egyenlőtlenül oszlanak el a számítási erőforrások között.

Ajánlás: Tekintse át az adateloszlást, majd a számítási feladat kiegyensúlyozásához használja a kulcssózást vagy az előösszesítést.

MANUAL_DATA_LAYOUT

Az asztal manuálisan optimalizált, és előnyös lehet az automatikus folyadékklaszterezésből.

Recommendations:

  • Alakítsa át a táblát külsőről felügyeltre a jobb teljesítmény és az automatikus karbantartás érdekében.
  • Engedélyezze a prediktív optimalizálást a táblában az automatikus karbantartási műveletekhez.
  • Engedélyezze az automatikus fürtözést a táblán az olvasási bájtok számának csökkentése érdekében.

Számítási és erőforrás-elemzések

DATA_SPILL

A lekérdezés végrehajtása során az adatok kiömlöttek a lemezre, mert az adatok nem fértek el a memóriában.

Ajánlás: Növelje a raktár méretét a memória hozzáadásához. Csökkentse a sorok, oszlopok vagy nagy oszlopok (sztringek, tömbök, térképek, szerkezetek) számát a memóriahasználat csökkentése érdekében.

EXCESSIVE_QUEUE_TIME

A lekérdezés a raktársoron várt.

Ajánlás: Növelje a maximális számú fürtöt a raktárban az üzenetsor-idő csökkentése érdekében.

IO_THROTTLING

A felhőszolgáltató szabályozta a felhőalapú tárolási kéréseket.

Ajánlás: Lépjen kapcsolatba a rendszergazdával, és kérjen nagyobb tárterület-korlátot a felhőszolgáltatótól.

Alkalmazott gyorsulások

Ezek az elemzések olyan optimizációkat írnak le, amelyeket az Azure Databricks már alkalmazott lekérdezés végrehajtása során. A Teljesítmény elemzések fülön Gyorsított címkével jelennek meg, és nem igényelnek cselekvést.

AUTO_LIQUID_CLUSTERING

Ez a lekérdezés kevesebb adatot olvas, mert a táblái automatikus folyadékklaszterezést használnak. Az Azure Databricks folyamatosan klaszterezi az egyes táblákat a saját feladatodból tanult kulcsok alapján, így a szkennelések kihagyják azokat a fájlokat, amelyek nem egyeznek a szűrőiddel. Nem szükséges hangolás vagy kézi partíció.

HISTORY_BASED_JOIN_STRATEGY

Az Azure Databricks optimalizálta ennek a lekérdezésnek a csatlakozását korábbi hasonló lekérdezések méréseivel. A műsoradás csatlakozást választotta a klaszterben való áthelyezés helyett, a munkaterhelés előzményei alapján. Nem szükséges lekérdezés módosítása.

SHORT_QUERY_PRIORITIZATION

Bár a klaszter kapacitással bírt, az Azure Databricks előre jelezte, hogy ez a lekérdezés rövidre fut, és azonnal gyors úton futtatta, ahelyett, hogy a sorban tartaná a nehezebb lekérdezések mögött. Ez az interaktív munkaterhelést reflexessé teszi terhelés alatt.

További erőforrások

A teljesítmény ajánlott eljárásainak szélesebb körű áttekintéséhez tekintse meg a Databricks, a Spark és a Delta Lake számítási feladatainak optimalizálására vonatkozó átfogó útmutatót.