Automatisch afstemmen beschrijven
Automatisch afstemmen is een bewakings- en analysefunctie die continu leert over uw workload en potentiële problemen en verbeteringen identificeert.
De aanbevelingen voor automatisch afstemmen zijn gebaseerd op de gegevens die zijn verzameld uit Query Store. Uitvoeringsplannen ontwikkelen zich in de loop van de tijd door schemawijzigingen, indexwijzigingen of wijzigingen in de gegevens die leiden tot updates van de statistieken. Deze evolutie kan ertoe leiden dat query's slecht presteren omdat het uitvoeringsplan niet meer voldoet aan de eisen van de opgegeven query.
Bovendien zorgt automatisch afstemmen ervoor dat machine learning-services kunnen worden verzameld en toegepast op metrische prestatiegegevens om voorgestelde verbeteringen te bieden of zelfs zelfcorrectie mogelijk te maken.
Of u nu on-premises of in de cloud bent, met automatisch afstemmen kunt u problemen identificeren die worden veroorzaakt door regressie van het queryuitvoeringsplan. Daarnaast kunt u in Azure SQL Database de prestaties van query's verbeteren door indexafstemming te afstemmen. Automatisch afstemmen van Azure SQL Database kan indexen identificeren die moeten worden toegevoegd of zelfs uit de database moeten worden verwijderd om de queryprestaties te verbeteren.
Automatische correctie van plannen
Met behulp van de Query Store-gegevens kan de database-engine bepalen wanneer queryuitvoeringsplannen zijn teruggedraaid in de prestaties. Hoewel u handmatig een teruggedraaid plan kunt identificeren via de gebruikersinterface, biedt de Query Store ook de mogelijkheid om u automatisch op de hoogte te stellen.
In het bovenstaande voorbeeld ziet u een vinkje bij plan-id 1, wat betekent dat het plan is gedwongen. Nadat de functie is ingeschakeld, dwingt de database-engine automatisch een aanbevolen queryuitvoeringsplan af wanneer:
- Het vorige plan had een hogere foutfrequentie dan het aanbevolen plan
- De geschatte CPU-toename was groter dan 10 seconden
- Het krachtplan heeft beter gepresteerd dan de vorige.
Het plan wordt na 15 uitvoeringen van de query teruggezet naar het laatst bekende goede plan.
Wanneer het plan automatisch wordt afgedwongen, past de database-engine het laatst bekende goede plan toe en houdt de prestaties van de uitvoering van query's in de gaten. Als het geforceerde plan niet beter presteert dan de vorige, wordt het niet afgedwongen en wordt er een nieuw plan gecompileerd. Als het geforceerde plan echter nog steeds beter presteert dan het vorige slechte plan, blijft het van kracht totdat er een nieuwecompilie plaatsvindt.
U kunt automatische correctie van plannen inschakelen via een T-SQL-query. De Query Store moet zijn ingeschakeld en moet zich in de modus Lezen/schrijven bevinden om de opdracht te laten slagen. Als niet aan een van deze twee criteria wordt voldaan, mislukt de instructie ALTER.
ALTER DATABASE [WideWorldImporters] SET AUTOMATIC_TUNING (FORCE_LAST_GOOD_PLAN = ON);
U kunt de aanbevelingen voor automatisch afstemmen bekijken via een dynamische beheerweergave (DMV), sys.dm_db_tuning_recommendationsdie beschikbaar is in SQL Server 2017 of hoger en ook beschikbaar is in Azure SQL Database-oplossingen. Deze DMV biedt informatie zoals redenen waarom de aanbeveling is opgegeven, het type aanbeveling en de status van de aanbeveling. Als u wilt controleren of automatisch afstemmen is ingeschakeld voor een database, controleert u de weergave sys.database_automatic_tuning_options.
Automatisch indexbeheer
Azure SQL Database biedt de mogelijkheid om automatische indexafstemming uit te voeren. Na verloop van tijd leert het van bestaande workloads en biedt het aanbevelingen voor het toevoegen of verwijderen van indexen om de prestaties te verbeteren. Net als bij het afdwingen van verbeterde queryplannen kan de database worden geconfigureerd om automatisch indexen te maken of te verwijderen op basis van hun prestaties, zoals wordt weergegeven in de volgende afbeelding.
Wanneer deze optie is ingeschakeld, worden op de pagina Prestatieaanveling indexen geïdentificeerd die kunnen worden gemaakt of verwijderd, afhankelijk van de prestaties van query's. Houd er rekening mee dat deze functie niet beschikbaar is voor on-premises databases en alleen beschikbaar is voor Azure SQL Database.
U kunt ook de volgende query gebruiken om de functies voor automatisch afstemmen in uw database weer te geven:
SELECT name,
desired_state_desc,
actual_state_desc,
reason_desc
FROM sys.database_automatic_tuning_options
Het maken van nieuwe indexen kan resources verbruiken en de timing van de indexcreaties is essentieel om ervoor te zorgen dat uw workloads geen negatief effect hebben.
Azure SQL Database bewaakt de resources die nodig zijn voor het implementeren van nieuwe indexen om te voorkomen dat de prestaties afnemen. De afstemmingsactie wordt uitgesteld totdat de beschikbare resources beschikbaar zijn, bijvoorbeeld als resources vereist zijn voor bestaande workloads en niet beschikbaar zijn voor het maken van een index.
Bewaking zorgt ervoor dat acties die worden ondernomen, geen schade toebrengen aan de prestaties. Als een index wordt verwijderd en de queryprestaties aanzienlijk afnemen, wordt de recent verwijderde index automatisch opnieuw gemaakt.