A Database Advisor teljesítményjavaslatai az Azure SQL Database-hez

A következőre vonatkozik: Azure SQL Database

Az Azure SQL Database az alkalmazással tanul és alkalmazkodik. Az Azure SQL Database számos adatbázis-tanácsadóval rendelkezik, amelyek testre szabott javaslatokat nyújtanak a teljesítmény maximalizálásához. Ezek az adatbázis-tanácsadók folyamatosan értékelik és elemzik a használati előzményeket, és olyan számítási feladatok alapján nyújtanak javaslatokat, amelyek segítenek a teljesítmény javításában.

Teljesítmény áttekintése

Az Azure Portal teljesítmény-áttekintése összefoglalja az adatbázis teljesítményét, és segít a teljesítmény finomhangolásában és hibaelhárításában.

  • Ha van ilyen, a Javaslatok csempe az adatbázis finomhangolási javaslatainak lebontását biztosítja. Ha bejelöli ezt a csempét, a teljesítményjavaslat beállításaihoz vezet.
  • A Finomhangolási tevékenység csempe az adatbázis folyamatban lévő és befejezett finomhangolási műveleteinek összegzését tartalmazza, így gyorsan áttekintheti a finomhangolási tevékenység előzményeit. Ha bejelöli ezt a csempét, megnyitja az adatbázis javaslatait és finomhangolási előzményeit. További információ: automatikus hangolás.
  • Az automatikus finomhangolási csempe az adatbázis automatikus finomhangolási konfigurációját jeleníti meg (az adatbázisra automatikusan alkalmazott finomhangolási beállításokat). A csempe kiválasztásával megnyílik az automatizálás konfigurációs párbeszédpanelje. Az adatbázisindexek és a lekérdezés-végrehajtási tervek automatikus hangolásáról további információt az automatikus hangolás című témakörben talál.
  • Az Adatbázis-lekérdezések csempe az adatbázis lekérdezési teljesítményének összegzését jeleníti meg (általános DTU-használat és a leggyakoribb erőforrás-használó lekérdezések). Ha bejelöli ezt a csempét, a Lekérdezési teljesítményelemzés lehetőséget választja.
  • Az alapértelmezett diagram összefoglalja az adatbázis-tevékenység elmúlt 24 óráját, és lehetőség van a legutóbbi tevékenységek nagyítására. A halmozott sávdiagramok a leggyakoribb lekérdezéseket cpu szerint elemzik, a többsoros gráf pedig a számítási feladatokat cpu, adat IO és Napló IO szerint jelöli. Jelölje ki a gráfban az egyes halmozott sávokat, amelyek mindegyike gyorsítótárazott lekérdezési tervet jelöl. Tekintse meg a Lekérdezési teljesítményelemzés lapot, és azonosítsa a számítási feladat legdrágább lekérdezéseit. További információ: Lekérdezési teljesítmény Elemzések.

Az Azure SQL-adatbázis Azure Portal navigációs menüjében lépjen az Intelligens teljesítmény teljesítmény áttekintése lapra.

Screenshot from the Azure portal of the Performance Overview for Azure SQL Database.

Teljesítményjavaslat beállításai

Az Azure SQL Database-ben elérhető teljesítményjavaslat-beállítások a következők:

Teljesítményjavaslat Önálló adatbázis és készletezett adatbázis támogatása Példányadatbázis támogatása
Indexjavaslatok létrehozása – Olyan indexek létrehozását javasolja, amelyek javíthatják a számítási feladatok teljesítményét. Igen Nem
Index elvetésére vonatkozó javaslatok – A redundáns és duplikált indexek eltávolítását javasolja naponta, kivéve az egyedi indexeket és a hosszú ideig (>90 napig) nem használt indexeket. Vegye figyelembe, hogy ez a beállítás nem kompatibilis a partícióváltást és indexmutatókat használó alkalmazásokkal. A nem használt indexek elvetése nem támogatott a Prémium és üzletileg kritikus szolgáltatási szintek esetében. Igen Nem
Lekérdezési javaslatok paraméterezése (előzetes verzió) – Kényszerített paraméterezést javasol azokban az esetekben, amikor egy vagy több, folyamatosan újrafordított lekérdezéssel rendelkezik, de ugyanazzal a lekérdezés-végrehajtási tervvel végződik. Igen Nem
Sémaproblémák megoldása (előzetes verzió) – Javaslatok a sémajavításhoz, amikor az Azure SQL Database rendellenességet észlel az adatbázisban előforduló sémával kapcsolatos SQL-hibák számában. A Microsoft jelenleg elavultnak minősíti a "Sémaproblémák kijavítása" javaslatokat. Igen Nem

A screenshot from the Azure portal showing sample performance recommendations for Azure SQL Database.

A teljesítményjavaslatok alkalmazásához tekintse meg a javaslatok alkalmazását. A javaslatok állapotának megtekintéséhez tekintse meg a figyelési műveleteket.

A múltban alkalmazott hangolási műveletek teljes előzményeit is megtalálhatja.

Indexjavaslatok létrehozása

Az Azure SQL Database folyamatosan monitorozza az épp futó lekérdezéseket, és azonosítja azokat az indexeket, amelyek javíthatják a teljesítményt. Miután elég biztos abban, hogy egy adott index hiányzik, létrejön egy új index-létrehozási javaslat.

Az Azure SQL Database megbízhatóságot épít ki az index által az idő során elért teljesítménynövekedés becslésével. A becsült teljesítménynövekedéstől függően az ajánlások a magas, közepes vagy alacsony kategóriába tartoznak.

A javaslatok felhasználásával létrehozott indexek mindig automatikusan létrehozottként vannak megjelölve. Az automatikusan létrehozott indexek a sys.indexes nézetben tekinthetők meg. Az automatikusan létrehozott indexek nem blokkolják az ALTER/RENAME parancsokat.

Ha egy automatikusan létrehozott indexet tartalmazó oszlopot próbál átejteni rajta, a parancs továbbhalad. Az automatikusan létrehozott indexet a parancs is elveti. A normál indexek blokkolják az ALTER/RENAME parancsot az indexelt oszlopokon.

Az index-létrehozási javaslat alkalmazása után az Azure SQL Database összehasonlítja a lekérdezések teljesítményét az alapkonfiguráció teljesítményével. Ha az új index javítja a teljesítményt, a javaslat sikeresként lesz megjelölve, és elérhető a hatásjelentés. Ha az index nem javította a teljesítményt, a rendszer automatikusan visszaállítja. Az Azure SQL Database ezt a folyamatot használja annak biztosítására, hogy a javaslatok javíthassák az adatbázis teljesítményét.

Minden létrehozási indexjavaslat rendelkezik egy háttérszabályzattal, amely nem teszi lehetővé a javaslat alkalmazását, ha egy adatbázis vagy készlet erőforrás-kihasználtsága magas. A visszalépési szabályzat figyelembe veszi a CPU-t, az adat-IO-t, a Napló IO-t és az elérhető tárterületet.

Ha a cpu, az adat-IO vagy a napló I/O az előző 30 percben nagyobb, mint 80%, a rendszer elhalasztja az index létrehozására vonatkozó javaslatot. Ha a rendelkezésre álló tárterület az index létrehozása után 10% alatt lesz, a javaslat hibaállapotba kerül. Ha néhány nap elteltével az automatikus finomhangolás továbbra is úgy véli, hogy az index előnyös lenne, a folyamat újra elindul.

Ez a folyamat addig ismétlődik, amíg nincs elegendő rendelkezésre álló tár az index létrehozásához, vagy amíg az index már nem tekinthető hasznosnak.

Indexjavaslatok elvetése

A hiányzó indexek észlelése mellett az Azure SQL Database folyamatosan elemzi a meglévő indexek teljesítményét is. A nem használt indexek esetében az Azure SQL Database az elvetést javasolja. Egy index elvetése két esetben ajánlott:

  • Az index egy másiknak az ismétlése (azonos indexelt és belefoglalt oszlop, partícióséma és szűrők).
  • Az indexet hosszabb ideig (>90 napig) nem használták.

A drop indexjavaslatok az implementáció után is végighaladnak az ellenőrzésen. If the performance improves, the impact report is available. If performance degrades, the recommendation is reverted.

Lekérdezési javaslatok paraméterezése (előzetes verzió)

A lekérdezések paraméterezésére vonatkozó javaslatok akkor jelennek meg, ha egy vagy több, folyamatosan újrafordított lekérdezéssel rendelkezik, de ugyanazzal a lekérdezés-végrehajtási tervvel végződik. Ez a feltétel lehetőséget teremt a kényszerített paraméterezés alkalmazására. A kényszerített paraméterezés viszont lehetővé teszi a lekérdezési tervek gyorsítótárazását és újrafelhasználását a jövőben, ami javítja a teljesítményt és csökkenti az erőforrás-használatot.

Először minden lekérdezést össze kell állítani egy végrehajtási terv létrehozásához. A rendszer minden létrehozott tervet hozzáad a csomaggyorsítótárhoz. Ugyanannak a lekérdezésnek a későbbi végrehajtása újra felhasználhatja ezt a tervet a gyorsítótárból, ami szükségtelenné teszi a további fordítást.

A nem paraméteres értékekkel rendelkező lekérdezések teljesítménybeli terheléshez vezethetnek, mert a végrehajtási tervet minden alkalommal újra kell fordítani, amikor a nem paraméteres értékek eltérnek. 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. Ez a viselkedés az adatbázis kényszerített paraméterezési beállításának beállításával módosítható.

A javaslat hatásának becsléséhez a rendszer összehasonlítja a tényleges CPU-használatot és az előre jelzett processzorhasználatot (mintha a javaslatot alkalmazták volna). Ez a javaslat segíthet a cpu-megtakarítás elérésében. Emellett csökkentheti a lekérdezések időtartamát és a csomaggyorsítótár terhelését, ami azt jelenti, hogy több csomag maradhat a gyorsítótárban, és újra felhasználható. Ezt a javaslatot gyorsan alkalmazhatja az Alkalmaz parancs kiválasztásával.

A javaslat alkalmazása után perceken belül engedélyezi a kényszerített paraméterezést az adatbázison. Elindítja a monitorozási folyamatot, amely körülbelül 24 óráig tart. Ezen időszak után megjelenik az érvényesítési jelentés. Ez a jelentés az adatbázis processzorhasználatát mutatja be a javaslat alkalmazása előtt és után 24 órával. Az Azure SQL Database Advisor biztonsági mechanizmussal rendelkezik, amely automatikusan visszaállítja az alkalmazott javaslatot, ha teljesítményregressziót észleltek.

Sémaproblémák megoldására vonatkozó javaslatok (előzetes verzió)

Fontos

A Microsoft jelenleg elavultnak minősíti a "Sémaproblémák kijavítása" javaslatokat. Javasoljuk, hogy az Intelligens Elemzések használatával monitorozza az adatbázis teljesítményproblémáit, beleértve a korábban ismertetett "Sémaproblémák kijavítása" javaslatokat.

A sémaproblémák megoldása akkor jelenik meg, ha az Azure SQL Database rendellenességet észlel az adatbázisban előforduló sémával kapcsolatos SQL-hibák számában. Ez a javaslat általában akkor jelenik meg, ha az adatbázis egy órán belül több sémával kapcsolatos hibát (érvénytelen oszlopnév, érvénytelen objektumnév stb.) tapasztal.

A "sémaproblémák" szintaxishibák osztályát képezik. Ezek akkor fordulnak elő, ha az SQL-lekérdezés definíciója és az adatbázisséma definíciója nincs igazítva. Előfordulhat például, hogy a lekérdezés által várt oszlopok egyike hiányzik a céltáblából, vagy fordítva.

A "Sémaproblémák kijavítása" javaslat akkor jelenik meg, ha az Azure SQL Database rendellenességet észlel az adatbázisban előforduló sémával kapcsolatos SQL-hibák számában. Az alábbi táblázat a sémaproblémákkal kapcsolatos hibákat mutatja be:

SQL-hibakód Üzenet
201 A "" eljárás vagy függvény a "" paramétert várja, amely nem lett megadva.
207 Érvénytelen "*" oszlopnév.
208 Érvénytelen "*" objektumnév.
213 Az oszlopnév vagy a megadott értékek száma nem egyezik a tábladefinícióval.
2812 A(z) *tárolt eljárás nem található.
8144 Az eljárás vagy függvény * argumentuma túl sok.

Egyéni alkalmazások

A fejlesztők fontolóra vehetik egyéni alkalmazások fejlesztését az Azure SQL Database teljesítményjavaslatai alapján. Az adatbázis portálján felsorolt javaslatok a Get-AzSqlDatabaseRecommendedAction API-val érhetők el.

További lépések

  • Az adatbázisindexek automatikus hangolásáról és a lekérdezés-végrehajtási tervekről további információt az Azure SQL Database automatikus hangolásában talál.
  • További információ az adatbázis teljesítményének automatikus monitorozásáról automatizált diagnosztikával és a teljesítményproblémák kiváltó okának elemzésével kapcsolatban: Azure SQL Intelligent Elemzések.
  • A lekérdezési teljesítmény Elemzések a leggyakoribb lekérdezések teljesítményre gyakorolt hatásának megismeréséhez és megtekintéséhez.