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
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ó:
Nyissa meg az Azure Portalt , és keressen egy vizsgálandó adatbázist.
A bal oldali menüben nyissa meg az Intelligent Performance>Query Performance Insightst.
Az első lapon tekintse át a leggyakoribb erőforrás-használó lekérdezések listáját.
Válassza ki az egyes lekérdezéseket a részleteinek megtekintéséhez.
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.
A megfigyelt időköz módosításához használjon csúszkákat vagy nagyítási ikonokat.
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.
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.
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.
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:
- Az Azure Portalon válassza az Azure SQL Database>Monitorozás lehetőséget.
- Válassza a Metrikák lehetőséget.
- Válassza a +Diagram hozzáadása lehetőséget.
- Válassza ki a DTU százalékos értékét a diagramon.
- 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.
Ha az adatok elavulttá válnak, válassza a Frissítés gombot.
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:
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.
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:
Válasszon ki egy lekérdezést a legfelső lekérdezések listájában.
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.
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.
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:
Nyissa meg az Egyéni lapot a kiválasztott adatbázis Lekérdezési teljesítményelemzés elemében.
Módosítsa a metrikákat időtartamra.
Válassza ki a lekérdezések számát és a megfigyelési időközt.
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.
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:
- Válassza az Azure SQL Database>Monitorozás lehetőséget.
- Válassza a Metrikák lehetőséget.
- Válassza a +Diagram hozzáadása lehetőséget.
- Válassza ki a DTU százalékos értékét a diagramon.
- 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:
Nyissa meg az Egyéni lapot a kiválasztott adatbázis Lekérdezési teljesítményelemzés elemében.
Módosítsa a metrikákat végrehajtási számra.
Válassza ki a lekérdezések számát és a megfigyelési időközt.
A testre szabott nézet megtekintéséhez válassza az Ugrás > gombot.
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.
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.
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.)
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.
Ajánlott adatmegőrzési és rögzítési szabályzat
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.