Intelligent Performance

Befejeződött

Az SQL Server és az Azure SQL automatizálást is biztosít, amely segít az alkalmazás egységes teljesítményének megvalósításában. Ezeket az automatizálási képességeket együttesen intelligens teljesítménynek nevezzük.

Az Azure SQL Intelligent Performance magában foglalja az intelligens lekérdezés-feldolgozást, az automatikus tervkorrekciót és az automatikus hangolást.

Intelligens lekérdezés-feldolgozás

Az intelligens lekérdezés-feldolgozás (IQP) az új képességek lekérdezésfeldolgozóba épített készlete. A legújabb adatbázis-kompatibilitási szinttel engedélyezhető. Az alkalmazások a legújabb adatbáziskompatibilitási szinttel nyerhetnek teljesítményt. Nincs szükség kódmódosításra. Az IQP egy példája a táblaváltozó késleltetett fordítása, amellyel a táblaváltozókat használó lekérdezések futtatása gyorsítható.

Az Azure SQL Database és az Azure SQL Managed Instance ugyanazt az adatbáziskompatibilitási szintet támogatja, amely (150) szükséges az IQP sql Server 2019-es és újabb verzióihoz való használatához.

Automatikus tervkorrekció

A lekérdezéstervek regressziója az SQL Server egyik legnehezebb, teljesítménnyel kapcsolatos megoldandó problémája. A lekérdezéstervek regressziója akkor fordul elő, ha ugyanazt a lekérdezést újból lefordítják, és az új terv rosszabb teljesítményt eredményez.

Az SQL Server 2017 és az Azure SQL Database a Lekérdezéstárban lévő adatok elemzésével bevezette az automatikus tervkorrekció koncepcióját. Ha az SQL Server 2017 (vagy újabb) verzióban és az Azure SQL Database-ben engedélyezett a Lekérdezéstár egy adatbázisban, az SQL Server motorja lekérdezésterv-regressziókat keres, és javaslatokat ad. Ezeket a javaslatokat a sys.dm_db_tuning_recommendations dinamikus felügyeleti nézetben (DMV) tekintheti meg. Ezek közé a javaslatok közé tartoznak azok a T-SQL-utasítások, amelyekkel manuálisan kényszeríthető egy lekérdezésterv, ha a teljesítmény jó állapotban volt.

Ha ezek a javaslatok elnyerték a bizalmát, engedélyezheti, hogy az SQL Server automatikusan kényszerítsen terveket, amikor regressziókat talál. Automatikus tervkorrekció engedélyezése a használatával ALTER DATABASE és az argumentum használatával AUTOMATIC_TUNING .

Azure SQL Database esetében az automatikus tervkorrekciót az Azure Portal vagy a REST API-k automatikus hangolási beállításaival is engedélyezheti. Az automatikus tervkorrekcióval kapcsolatos javaslatok mindig engedélyezve vannak minden olyan adatbázis esetében, amelyben engedélyezve van a Lekérdezéstár (ami az Azure SQL Database és a felügyelt Azure SQL-példányok esetében alapértelmezett). Új adatbázisok esetén alapértelmezés szerint engedélyezve van az automatikus tervkorrekció (FORCE_PLAN) az Azure SQL Database-ben.

Az Azure SQL Database automatikus hangolása

Az automatikus tervkorrekció példa az Azure SQL és az SQL Server automatikus finomhangolására, de az Azure SQL Database automatikus finomhangolásának egyedi aspektusa az automatikus indexelés.

Megjegyzés:

Az automatikus indexelés a felügyelt SQL-példányokon jelenleg nem érhető el.

A felhő módszert biztosít a Microsoft számára, hogy a csomagajánlatokon túl teljesítménnyel kapcsolatos javaslatok és automatizálás formájában nyújtson további szolgáltatásokat. Ez a képesség az Azure SQL Database automatikus hangolásaként ismert. Ezek a szolgáltatások háttérprogramként futnak egy Azure SQL Database-példány teljesítményadatainak elemzése céljából. Bármelyik adatbázis-előfizetés díja tartalmazza őket.

A fő forgatókönyv, amelynek kezelésére az automatikus hangolás ki lett alakítva, az indexekre vonatkozik. Az automatikus hangolás elemzi az adatbázis telemetriáiból származó adatokat, beleértve a lekérdezéstárat és a DMV-ket is, hogy olyan indexeket javasoljon, amelyek javíthatják az alkalmazás teljesítményét. Emellett engedélyezheti az automatikus hangolási szolgáltatásoknak, hogy automatikusan hozzanak létre a lekérdezési teljesítmény javítására alkalmas indexeket. Az automatikus hangolás az indexmódosításokat is monitorozza, és javasolja vagy automatikusan elvégzi azon indexek elvetését, amelyek nem javítják a lekérdezési teljesítményt.

Az Azure SQL Database automatikus hangolása konzervatív megközelítést alkalmaz az indexek ajánlására. Ez azt jelenti, hogy előfordulhat, hogy a DMV-ben( például sys.dm_db_missing_index_detailsegy lekérdezési megjelenítési tervben) megjelenő javaslatok nem jelennek meg azonnal az automatikus hangolásra vonatkozó javaslatokként. Az automatikus hangolási szolgáltatások idővel figyelik a lekérdezéseket, és gépi tanulási algoritmusokkal javaslatokat tesznek a lekérdezési teljesítményre.

Fontos szem előtt tartani, hogy az indexelési javaslatok automatikus hangolása nem veszi figyelembe azt a többletteljesítményt, amelyet az index okozhat az olyan műveletek esetében, mint a beszúrás, a frissítés vagy a törlés. Az automatikus indexelési funkció által létrehozott új nemclustered indexek általában jelentős pozitív hatással vannak a teljesítményre.

A paraméteres lekérdezések az automatikus hangolás egy további forgatókönyvét képviselik. A nem paraméteres értékeket tartalmazó lekérdezések teljesítménybeli többletterheléshez vezethetnek, mivel a végrehajtási terv minden alkalommal újrafordítódik, amikor a nem paraméteres értékek eltérőek. Sok esetben előfordul, hogy ugyanaz a lekérdezés eltérő paraméterértékekkel ugyanazokat a végrehajtási terveket hozza létre. Ezek a tervek azonban továbbra is külön kerülnek be a terv gyorsítótárába. A végrehajtási tervek újrafordításának folyamata adatbázis-erőforrásokat használ, növeli a lekérdezés időtartamát, és túltelíti a terv gyorsítótárát. Ezek az események így a tervek a gyorsítótárból való kiürítését okozzák.

A paraméterérzékeny terv (PSP) optimalizálása segítségével kezelheti ezt a forgatókönyvet. A PSP-optimalizálás automatikusan engedélyezi a több aktív gyorsítótárazott csomagot egyetlen paraméteres utasításhoz. A gyorsítótárazott végrehajtási tervek az ügyfél által megadott futtatókörnyezeti paraméterértékek alapján különböző adatméreteket tartalmaznak.

Példa az Azure SQL Database automatikus hangolása által javasolt indexekre

Az alábbiakban egy példát láthat az Azure Portalról, ahol a rendszer a számítási feladatok egy adott időszakban való elemzése után javasol indexeket egy adatbázishoz. Még nem küldtünk elég tevékenységet a tesztkörnyezetbe az Azure SQL Database-nek, hogy ehhez hasonló javaslatokat hozzunk létre. CREATE INDEX a javaslatok idővel jönnek létre a számítási feladat rögzítésekor, és nem a gyakorlat kis időkeretében.

Screenshot of index recommendation notification.

Az Azure Portal Teljesítmény áttekintése területén a lekérdezéstárban található öt erőforrás-fogyasztó lekérdezés teljesítményadatai láthatók. Emellett egy javaslat is szerepel itt.

Screenshot of Query Performance Overview.

Az Azure Portal a Lekérdezési terheléselemzőt is biztosítja, amely egy, a Lekérdezéstáron alapuló vizuális jelentéskészítő eszköz. Ebben a példában a Lekérdezési terheléselemző megmutatja a legtöbb erőforrást használó lekérdezést, és javaslatot tesz a lekérdezési teljesítmény javítására.

Screenshot of Query Performance Insights.

Az Azure Portal a teljesítményre vonatkozó javaslatok közvetlen megtekintését is lehetővé teszi.

Screenshot of Performance Recommendations.

Ebben a nézetben konkrét javaslatok, valamint az automatikus hangolási műveletek előzményei láthatók. Index esetén az index adatai és táblázata jelenik meg. Az Automatizálás beállítás az automatikus hangolás engedélyezésére szolgál.

Screenshot of automatic tuning options.

Az automatikus hangolási beállítások az adatbázis-kiszolgáló vagy az adatbázis szintjén állíthatók be. Ha engedélyezte az automatikus hangolást ebben a forgatókönyvben, az index automatikusan létrejön.

Az automatikus hangolási beállításokat a sys.database_automatic_tuning_options DMV-n keresztül is megtekintheti.

Megjegyzés:

az indexek és a paraméterérzékeny csomagok Javaslatok és automatizálása nem érhető el az Azure SQL Managed Instance vagy az SQL Server esetében. Az automatikus csomagjavítás elérhető.

Ha kiválasztja a javasolt indexet, több részletet láthat róla.

Screenshot of create index recommendation.

Az index, a tábla és a szükséges hely részletei láthatók. Lehetősége van arra, hogy alkalmazza az ajánlott indexet, illetve hogy megtekintse azt a T-SQL-szkriptet, amely az index alkalmazására szolgál.

Screenshot of the index recommendation script.

Figyelje meg, hogy az index egy nem fürtözött index, amely online indexként van alkalmazva. Ha az indexet egy javaslat alapján, manuálisan vagy automatikus hangolással alkalmazták, az ajánlási motor a lekérdezési teljesítményt is monitorozza az alkalmazott index kapcsán egy megadott időszakban. Ha a lekérdezés teljesítménye csökken az index alkalmazása előtti szinthez képest, elvetheti az indexet.

Tudáspróba

1.

Melyik állítás írja le a legjobban az intelligens lekérdezés-feldolgozást (IQP-t)?

2.

Az automatikus tervkorrekció mely, teljesítménnyel kapcsolatos forgatókönyvtípusok esetében tud javaslatokkal és javításokkal szolgálni?

3.

Az Azure SQL Database automatikus hangolása milyen információk alapján tud indexeket javasolni és létrehozni?