Az Azure SQL Database lekérdezési terheléselemzője

A következőre vonatkozik: Azure SQL Database

A Lekérdezési terheléselemző intelligens lekérdezéselemzéseket biztosít az önálló és a rugalmas készletbe helyezett adatbázisokhoz. Ez segít azonosítani a legtöbb erőforrást használó és a hosszú ideig futó lekérdezéseket a számítási feladatban. Így kiszűrhető, hogy mely lekérdezéseket kell optimalizálni a számítási feladat teljesítményének javítása, illetve a kifizetett erőforrások hatékony felhasználása érdekében. A Lekérdezési teljesítmény elemzése a következők megadásával segít rövidebb idő alatt elhárítani az adatbázis teljesítményével kapcsolatos hibákat:

  • Az adatbázis-erőforrás (DTU) felhasználásának mélyebb megismerés
  • A legfontosabb adatbázis-lekérdezések részletei processzor, időtartam és végrehajtás száma szerint (a teljesítményfejlesztés lehetséges finomhangolási jelöltjei)
  • A lekérdezés részleteinek részletezése, a lekérdezés szövegének és az erőforrás-kihasználtság előzményeinek megtekintése
  • Az adatbázis-tanácsadók teljesítményjavaslatait megjelenítő széljegyzetek

Query Performance Insight

Előfeltételek

A Lekérdezési teljesítményelemzés megköveteli, hogy a Lekérdezéstár aktív legyen az adatbázisban. Ez az Azure SQL Database-ben minden adatbázishoz alapértelmezés szerint engedélyezve van. Ha a Lekérdezéstár nem fut, akkor az Azure Portal üzenetben kér, hogy engedélyezze.

Feljegyzés

Ha a portálon megjelenik „A Lekérdezéstár nincs megfelelően konfigurálva ezen az adatbázison“ üzenet, járjon el a Lekérdezéstár-konfiguráció optimalizálása című cikkben leírtak szerint.

Jogosultságok

A Lekérdezési teljesítmény elemzésének használatához az alábbi Azure-beli szerepköralapú hozzáférés-vezérlési (Azure RBAC) engedélyek szükségesek:

  • A leggyakoribb erőforrás-használó lekérdezések és diagramok megtekintéséhez olvasói, tulajdonosi, közreműködői, SQL DB-közreműködői vagy SQL Server-közreműködői engedélyek szükségesek.
  • A lekérdezés szövegének megtekintéséhez tulajdonosi, közreműködői, SQL DB-közreműködői vagy SQL Server-közreműködői engedélyek szükségesek.

A Lekérdezési terheléselemző használata

A Lekérdezési teljesítményelemzés egyszerűen használható:

  1. Nyissa meg az Azure Portalt , és keressen egy vizsgálandó adatbázist.

  2. A bal oldali menüben nyissa meg az Intelligent Performance>Query Performance Insightst.

    Query Performance Insight on the menu

  3. Az első lapon tekintse át a leggyakoribb erőforrás-használó lekérdezések listáját.

  4. Válassza ki az egyes lekérdezéseket a részleteinek megtekintéséhez.

  5. Nyissa meg az intelligens teljesítményre>vonatkozó javaslatokat, és ellenőrizze, hogy elérhetők-e teljesítményjavaslatok. A beépített teljesítményjavaslatokról további információt az Azure SQL Database Advisorban talál.

  6. A megfigyelt időköz módosításához használjon csúszkákat vagy nagyítási ikonokat.

    Performance dashboard

Feljegyzés

Ahhoz, hogy az Azure SQL Database megjeleníthesse az adatokat a Lekérdezési teljesítményelemzésben, a Lekérdezéstárnak néhány órányi adatot kell rögzítenie. Ha az adatbázis nem rendelkezik tevékenységekkel, vagy ha a Lekérdezéstár nem volt aktív egy adott időszakban, a diagramok üresek lesznek, amikor a Lekérdezési teljesítményelemzés megjeleníti az adott időtartományt. A lekérdezéstárat bármikor engedélyezheti, ha az nem fut. További információkért tekintse meg a Lekérdezéstár ajánlott eljárásait.

Az adatbázis teljesítményére vonatkozó javaslatokhoz válassza a Javaslatok a Lekérdezési teljesítményelemzés navigációs panelen.

The Recommendations tab

A legfontosabb processzorhasználati lekérdezések áttekintése

Alapértelmezés szerint a Lekérdezési teljesítményelemzés az első megnyitáskor az öt processzort használó lekérdezést jeleníti meg.

  1. Jelölje be vagy törölje az egyes lekérdezéseket a diagramból való belefoglalásukhoz vagy kizárásukhoz jelölőnégyzetek használatával.

    A felső sorban az adatbázis teljes DTU-százalékos aránya látható. A sávok a kiválasztott időköz során felhasznált cpu-százalékos értéket jelenítik meg. Ha például a Múlt hét van kiválasztva, minden sáv egyetlen napot jelöl.

    Top queries

    Fontos

    A megjelenített DTU-sor egyórás időszakok maximális fogyasztási értékére van összesítve. Ez csak a lekérdezések végrehajtási statisztikáinak magas szintű összehasonlítására szolgál. Bizonyos esetekben a DTU kihasználtsága túl magasnak tűnhet a végrehajtott lekérdezésekhez képest, de előfordulhat, hogy ez nem így van.

    Ha például egy lekérdezés csak néhány percig maximálisan 100%-ra becsülte a DTU-t, a Lekérdezési teljesítményelemzés DTU-sora 100%-ként (a maximális összesített érték következményeként) jeleníti meg a teljes használati órát.

    A részletesebb összehasonlítás érdekében (akár egy percig) érdemes lehet egyéni DTU-kihasználtsági diagramot létrehozni:

    1. Az Azure Portalon válassza az Azure SQL Database>Monitorozás lehetőséget.
    2. Válassza a Metrikák lehetőséget.
    3. Válassza a +Diagram hozzáadása lehetőséget.
    4. Válassza ki a DTU százalékos értékét a diagramon.
    5. Emellett válassza az Utolsó 24 óra lehetőséget a bal felső menüben, és módosítsa egy percre.

    Az egyéni DTU-diagramot a lekérdezésvégrehajtási diagramhoz képest finomabb részletességgel hasonlíthatja össze.

    Az alsó rács a látható lekérdezések összesített adatait jeleníti meg:

    • Lekérdezésazonosító, amely az adatbázisban lévő lekérdezés egyedi azonosítója.
    • A lekérdezésenkénti processzor egy megfigyelhető intervallumban, amely az aggregációs függvénytől függ.
    • Lekérdezésenkénti időtartam, amely az aggregációs függvénytől is függ.
    • Egy adott lekérdezés végrehajtásának teljes száma.
  2. Ha az adatok elavulttá válnak, válassza a Frissítés gombot.

  3. Csúszkákkal és nagyítási gombokkal módosíthatja a megfigyelési időközt, és megvizsgálhatja a használati kiugró értékeket:

    Sliders and zoom buttons for changing the interval

  4. Igény szerint az Egyéni lap kiválasztásával testre szabhatja a nézetet a következőhöz:

    • Metrika (CPU, időtartam, végrehajtás száma).
    • Időintervallum (az elmúlt 24 óra, az elmúlt hét vagy az elmúlt hónap).
    • Lekérdezések száma.
    • Aggregációs függvény.

    Custom tab

  5. A testre szabott nézet megtekintéséhez válassza az Ugrás > gombot.

    Fontos

    A Lekérdezési teljesítményelemzés a kiválasztott lekérdezéstől függően az 5–20 legfogyasztóbb lekérdezés megjelenítésére korlátozódik. Az adatbázis több lekérdezést is futtathat a megjelenített felsőn túl, és ezek a lekérdezések nem lesznek belefoglalva a diagramba.

    Létezik olyan adatbázis-számítási feladattípus, amelyben a leggyakoribbakon túl sok kisebb lekérdezés fut gyakran, és használja a DTU többségét. Ezek a lekérdezések nem jelennek meg a teljesítménydiagramon.

    Előfordulhat például, hogy egy lekérdezés egy ideig jelentős mennyiségű DTU-t használt fel, bár a teljes felhasználás a megfigyelt időszakban kisebb, mint a többi legfogyasztóbb lekérdezés. Ilyen esetben a lekérdezés erőforrás-kihasználtsága nem jelenik meg a diagramon.

    Ha a lekérdezési teljesítményelemzés korlátain túl meg kell ismernie a leggyakoribb lekérdezésvégrehajtásokat, fontolja meg az Azure SQL Elemzések használatát az adatbázisok fejlett teljesítményének monitorozásához és hibaelhárításához.

Az egyes lekérdezések részleteinek megtekintése

A lekérdezés részleteinek megtekintése:

  1. Válasszon ki egy lekérdezést a legfelső lekérdezések listájában.

    List of top queries

    Megnyílik egy részletes nézet. Megjeleníti a processzorhasználatot, az időtartamot és a végrehajtások számát az idő függvényében.

  2. Válassza ki a diagram funkcióit a részletekért.

    • A felső diagram az adatbázis teljes DTU-százalékos arányával rendelkező sort jeleníti meg. A sávok a kiválasztott lekérdezés által felhasznált cpu-százalékértékek.
    • A második diagram a kijelölt lekérdezés teljes időtartamát mutatja.
    • Az alsó diagram a kijelölt lekérdezés által végrehajtott végrehajtások teljes számát mutatja.

    Query details

  3. Ha szeretné, használjon csúszkákat, használjon nagyítási gombokat, vagy válassza ki a Gépház a lekérdezési adatok megjelenítésének testreszabásához, vagy válasszon másik időtartományt.

    Fontos

    A Lekérdezési teljesítményelemzés nem rögzíti a DDL-lekérdezéseket. Bizonyos esetekben előfordulhat, hogy nem rögzíti az összes alkalmi lekérdezést.

    Ha az adatbázis hatóköre írásvédett zárolással van zárolva, a lekérdezés részletei panel nem tölthető be.

A leggyakoribb lekérdezések áttekintése időtartamonként

A Lekérdezési teljesítményelemzés két metrikája segíthet a lehetséges szűk keresztmetszetek megtalálásában: az időtartam és a végrehajtás száma.

A hosszú ideig futó lekérdezések a legnagyobb potenciállal rendelkeznek az erőforrások hosszabb zárolására, a többi felhasználó letiltására és a méretezhetőség korlátozására. Ők is a legjobb jelöltek az optimalizáláshoz. További információ: Az Azure SQL blokkolási problémáinak ismertetése és megoldása.

Hosszú ideig futó lekérdezések azonosítása:

  1. Nyissa meg az Egyéni lapot a kiválasztott adatbázis Lekérdezési teljesítményelemzés elemében.

  2. Módosítsa a metrikákat időtartamra.

  3. Válassza ki a lekérdezések számát és a megfigyelési időközt.

  4. Válassza ki az aggregációs függvényt:

    • Az összeg a teljes megfigyelési időköz összes lekérdezés-végrehajtási idejét összeadja.
    • A Max megkeresi azokat a lekérdezéseket, amelyekben a teljes megfigyelési időközhöz maximális végrehajtási idő volt.
    • Az Avg megkeresi az összes lekérdezésvégrehajtás átlagos végrehajtási idejét, és megjeleníti az átlaghoz tartozó legfontosabbakat.

    Query duration

  5. A testre szabott nézet megtekintéséhez válassza az Ugrás > gombot.

    Fontos

    A lekérdezési nézet módosítása nem frissíti a DTU-sort. A DTU-sor mindig az intervallum maximális használati értékét jeleníti meg.

    Az adatbázis DTU-használatának részletesebb (akár egy perces) megismeréséhez érdemes lehet egyéni diagramot létrehozni az Azure Portalon:

    1. Válassza az Azure SQL Database>Monitorozás lehetőséget.
    2. Válassza a Metrikák lehetőséget.
    3. Válassza a +Diagram hozzáadása lehetőséget.
    4. Válassza ki a DTU százalékos értékét a diagramon.
    5. Emellett válassza az Utolsó 24 óra lehetőséget a bal felső menüben, és módosítsa egy percre.

    Javasoljuk, hogy az egyéni DTU-diagramot használja a lekérdezés teljesítménydiagramjával való összehasonlításhoz.

A leggyakoribb lekérdezések áttekintése végrehajtásonként

Az adatbázist használó felhasználói alkalmazások lassúak lehetnek, annak ellenére, hogy sok végrehajtás nem érinti magát az adatbázist, és az erőforrások kihasználtsága alacsony.

Bizonyos esetekben a magas végrehajtási szám több hálózati körúthoz vezethet. A kerek utak hatással vannak a teljesítményre. Ezek a hálózati késések és az alsóbb rétegbeli kiszolgálók késésének vannak kitéve.

Sok adatvezérelt webhely például minden felhasználói kéréshez nagy mértékben hozzáfér az adatbázishoz. Bár a kapcsolatkészletezés segít, a megnövekedett hálózati forgalom és a kiszolgáló feldolgozási terhelése lelassíthatja a teljesítményt. Általában a minimumra kell kerekíteni az utakat.

A gyakran végrehajtott ("csevegő") lekérdezések azonosítása:

  1. Nyissa meg az Egyéni lapot a kiválasztott adatbázis Lekérdezési teljesítményelemzés elemében.

  2. Módosítsa a metrikákat végrehajtási számra.

  3. Válassza ki a lekérdezések számát és a megfigyelési időközt.

  4. A testre szabott nézet megtekintéséhez válassza az Ugrás > gombot.

    Query execution count

A teljesítményhangolási széljegyzetek ismertetése

A számítási feladat lekérdezési teljesítményelemzésben való felfedezése közben megjelenhetnek a diagram tetején függőleges vonallal rendelkező ikonok.

Ezek az ikonok széljegyzetek. Az Azure SQL Database Advisor teljesítményjavaslatait jelenítik meg. Ha egy széljegyzet fölé viszi az egérmutatót, összesített információkat kaphat a teljesítményjavaslatokról.

Query annotation

Ha többet szeretne megtudni, vagy alkalmazni szeretné az tanácsadó javaslatát, válassza az ikont az ajánlott művelet részleteinek megnyitásához. Ha ez egy aktív javaslat, azonnal alkalmazhatja a portálról.

Query annotation details

Bizonyos esetekben a nagyítási szint miatt előfordulhat, hogy az egymáshoz közeli széljegyzetek egyetlen széljegyzetbe vannak összecsukva. A Lekérdezési teljesítményelemzés ezt csoportjegyzet ikonként jelöli. A csoportjegyzet ikon kiválasztásával megnyílik egy új panel, amely felsorolja a széljegyzeteket.

A lekérdezések és a teljesítmény-finomhangolási műveletek korrelálása segíthet a számítási feladatok jobb megértésében.

A Lekérdezéstár konfigurációjának optimalizálása

A Lekérdezési teljesítményelemzés használata során a következő Lekérdezéstár hibaüzenetek jelenhetnek meg:

  • "A Lekérdezéstár nincs megfelelően konfigurálva ezen az adatbázisban. További információért kattintson ide.”
  • "A Lekérdezéstár nincs megfelelően konfigurálva ezen az adatbázisban. Kattintson ide a beállítások módosításához.”

Ezek az üzenetek általában akkor jelennek meg, ha a Lekérdezéstár nem tud új adatokat gyűjteni.

Az első eset akkor fordul elő, ha a Lekérdezéstár írásvédett állapotban van, és a paraméterek optimálisan vannak beállítva. Ezt kijavíthatja az adattár méretének növelésével vagy a Lekérdezéstár törlésével. (Ha törli a Lekérdezéstárat, a korábban összegyűjtött telemetriai adatok elvesznek.)

Query Store details

A második eset akkor fordul elő, ha a Lekérdezéstár nincs engedélyezve, vagy a paraméterek nincsenek optimálisan beállítva. Módosíthatja a megőrzési és rögzítési szabályzatot, valamint engedélyezheti a Lekérdezéstárat az alábbi T-SQL-parancsok futtatásával, amelyet az Azure Portal lekérdezésszerkesztője, az SQL Server Management Studio (SSMS), az Azure Data Studio, az sqlcmd vagy a választott ügyféleszköz biztosít.

Kétféle adatmegőrzési szabályzat létezik:

  • Méretalapú: Ha ez a szabályzat AUTOMATIKUS értékre van állítva, akkor a maximális méret elérésekor automatikusan törli az adatokat.
  • Időalapú: Alapértelmezés szerint ez a szabályzat 30 napra van beállítva. Ha a Lekérdezéstárnak elfogy a szabad területe, akkor törli a 30 napnál régebbi lekérdezési adatokat.

A rögzítési szabályzatot a következőre állíthatja be:

  • Mind: A Lekérdezéstár minden lekérdezést rögzít.
  • Automatikus: A lekérdezéstár figyelmen kívül hagyja a ritkán használt lekérdezéseket és lekérdezéseket jelentéktelen fordítási és végrehajtási időtartammal. A végrehajtások számának, a fordítási időtartamnak és a futásidejű időtartamnak a küszöbértékei belsőleg vannak meghatározva. Ez az alapértelmezett beállítás.
  • Nincs: A Lekérdezéstár leállítja az új lekérdezések rögzítését, de a már rögzített lekérdezések futásidejű statisztikái továbbra is összegyűjtve lesznek.

Javasoljuk, hogy az SSMS-ből vagy az Azure Portalról az alábbi parancsok végrehajtásával állítsa az összes házirendet automatikusra, a tisztítási szabályzatot pedig 30 napra. (Cserélje le YourDB az adatbázis nevére.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (SIZE_BASED_CLEANUP_MODE = AUTO);

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30));

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (QUERY_CAPTURE_MODE = AUTO);

A lekérdezéstár méretének növeléséhez csatlakozzon egy adatbázishoz az SSMS-ben vagy az Azure Portalon keresztül, és futtassa az alábbi lekérdezést. (Cserélje le YourDB az adatbázis nevére.)

    ALTER DATABASE [YourDB]
    SET QUERY_STORE (MAX_STORAGE_SIZE_MB = 1024);

Ha ezeket a beállításokat alkalmazza, a Lekérdezéstár végül telemetriát gyűjt az új lekérdezésekhez. Ha azonnal üzembe kell helyeznie a Lekérdezéstárat, a következő lekérdezés SSMS-ben vagy az Azure Portalon való futtatásával törölheti a Lekérdezéstárat. (Cserélje le YourDB az adatbázis nevére.)

Feljegyzés

A következő lekérdezés futtatása törli az összes korábban összegyűjtött figyelt telemetriát a Lekérdezéstárban.

    ALTER DATABASE [YourDB] SET QUERY_STORE CLEAR;

Következő lépések

Fontolja meg az Azure SQL Analytics használatát az önálló és készletezett adatbázisok, rugalmas készletek, felügyelt példányok és példányadatbázisok nagy méretű flottájának fejlett teljesítménymonitorozásához.