Intelligente prestaties

Voltooid

SQL Server en Azure SQL bevatten automatisering om consistente prestaties voor uw toepassing te bieden. Deze automatiseringsmogelijkheden worden gezamenlijk intelligente prestaties genoemd.

Intelligente prestaties voor Azure SQL met intelligente queryverwerking, automatische correctie van plannen en automatische afstemming.

Intelligent Query Processing

Intelligent query processing (IQP) is een suite met nieuwe functies die zijn ingebouwd in de queryprocessor. U kunt deze inschakelen met behulp van het meest recente databasecompatibiliteitsniveau. Toepassingen kunnen betere prestaties krijgen met behulp van het meest recente compatibiliteitsniveau van de database. Er zijn geen codewijzigingen vereist. Een voorbeeld van een IQP is compilatie die tabelvariabelen gebruikt om query's die tabelvariabelen gebruiken sneller uit te voeren.

Azure SQL Database en Azure SQL Managed Instance ondersteunen hetzelfde databasecompatibiliteitsniveau (150) voor het gebruik van IQP als SQL Server 2019 en latere versies.

Automatische correctie van plannen

Regressies van een queryplan zijn een van de moeilijkste prestatieproblemen die kunnen worden opgelost met SQL Server. Een regressie voor een queryplan treedt op wanneer dezelfde query opnieuw wordt gecompileerd en een nieuw plan resulteert in slechtere prestaties.

SQL Server 2017 en Azure SQL Database hebben het concept van Automatic Plan Correction oftewel automatische correctie van plannen geïntroduceerd door gegevens in de Query Store te analyseren. Wanneer u de Query Store inschakelt met een database in SQL Server 2017 (of hoger) en in Azure SQL Database, zoekt de SQL Server-engine naar regressies van het queryplan en wordt er een aanbeveling gedaan. U kunt deze aanbevelingen zien in de sys.dm_db_tuning_recommendations dynamische beheerweergave (DMV). Deze aanbevelingen omvatten T-SQL-instructies om een queryplan handmatig af te dwingen wanneer de prestaties 'in goede staat' zijn.

Als u in deze aanbevelingen vertrouwt, kunt u SQL Server instellen om plannen automatisch af te dwingen wanneer er regressies worden aangetroffen. Schakel automatische correctie van plannen in met behulp van ALTER DATABASE en het AUTOMATIC_TUNING argument.

U kunt voor Azure SQL Database ook automatische correctie van plannen inschakelen via opties voor Automatisch afstemmen in Azure Portal of REST-API's. Aanbevelingen voor automatische correctie van plannen zijn altijd ingeschakeld voor databases waarvoor Query Store is ingeschakeld (dit is de standaardinstelling voor Azure SQL Database en Azure SQL Managed Instance). Voor nieuwe databases is automatische correctie van plannen (FORCE_PLAN) standaard ingeschakeld voor Azure SQL Database.

Automatisch afstemmen voor Azure SQL Database

Automatische correctie van plannen is een voorbeeld van automatisch afstemmen in Azure SQL en SQL Server, maar een uniek aspect voor automatisch afstemmen voor Azure SQL Database is automatische indexering.

Notitie

Automatisch indexeren is momenteel niet beschikbaar in SQL Managed Instance.

De cloud biedt een methode voor Microsoft om extra services te bieden in de vorm van aanbevelingen voor prestaties en automatisering buiten aanbevelingen voor plannen. Deze mogelijkheid staat bekend als automatisch afstemmen voor Azure SQL Database. Deze services worden uitgevoerd als achtergrondprogramma's voor het analyseren van prestatiegegevens uit een instantie van Azure SQL Database. Deze services zijn opgenomen in de prijs van elk databaseabonnement.

Het hoofdscenario waarvoor automatisch afstemmen is ontworpen zijn indexen. Automatisch afstemmen analyseert gegevens uit de telemetrie van een database, waaronder queryarchief en DMV's, om indexen aan te bevelen die moeten worden gemaakt om de prestaties van toepassingen te verbeteren. Daarnaast kunt u automatisch afstemmen inschakelen om automatisch indexen te maken waarmee de prestaties van query's worden verbeterd. Door Automatisch afstemmen worden ook de wijzigingen van de index gecontroleerd en wordt verwijderen aanbevolen of worden de indexen die de queryprestaties niet verbeteren automatisch verwijderd.

Automatisch afstemmen voor Azure SQL Database is een conservatieve benadering voor het aanbevelen van indexen. Dit betekent dat aanbevelingen die kunnen worden weergegeven in een DMV, of sys.dm_db_missing_index_detailseen query-showplan, mogelijk niet onmiddellijk worden weergegeven als aanbevelingen voor automatisch afstemmen. Automatische afstemmingsservices bewaken query's in de loop van de tijd en maken gebruik van machine learning-algoritmen om aanbevelingen te doen om de prestaties van query's echt te beïnvloeden.

Houd er rekening mee dat automatisch afstemmen voor indexaanbevelingen geen account heeft voor de overheadprestaties die een index kan veroorzaken voor uw bewerkingen, zoals invoegen, bijwerken of verwijderen. Normaal gesproken hebben de nieuwe niet-geclusterde indexen die door de functie automatische indexen worden gemaakt, een grote positieve invloed op de prestaties.

Query's met parameters vertegenwoordigen een aanvullend scenario voor automatisch afstemmen. Query's met niet-geparameteriseerde waarden kunnen leiden tot prestatieoverhead, omdat het uitvoeringsplan telkens opnieuw wordt gecompileerd wanneer de niet-geparameteriseerde waarden verschillend zijn. In veel gevallen genereren dezelfde query's met verschillende parameterwaarden dezelfde uitvoeringsplannen. Deze plannen worden echter nog steeds afzonderlijk toegevoegd aan de plancache. Het proces van het opnieuw compileren van uitvoeringsplannen maakt gebruik van databaseresources, verhoogt de duur van de query en overschrijdt de plancache. Deze gebeurtenissen zorgen ervoor dat er plannen uit de cache worden verwijderd.

U kunt PSP-optimalisatie (Parameter Sensitive Plan) gebruiken om dit scenario aan te pakken. PSP-optimalisatie schakelt automatisch meerdere actieve abonnementen in de cache in voor één geparameteriseerde instructie. Uitvoeringsplannen in de cache bieden plaats aan verschillende gegevensgrootten op basis van de door de klant geleverde runtimeparameterwaarden.

Voorbeeld van indexen met automatisch afstemmen in Azure SQL Database

Hier volgt een voorbeeld van Azure Portal waarbij indexen worden aanbevolen voor een database op basis van de analyse van de workload in de loop van de tijd. We hebben nog niet genoeg activiteit verzonden naar uw sandbox azure SQL Database om aanbevelingen als deze te genereren. CREATE INDEX aanbevelingen worden in de loop van de tijd gegenereerd wanneer uw workload wordt vastgelegd en niet in het korte tijdsbestek van deze oefening.

Screenshot of index recommendation notification.

In Azure Portal, in Prestatieoverzicht, ziet u prestatiegegevens voor de vijf belangrijkste query's die resources verbruiken, zoals te vinden is in de Query Store. Er is ook een aanbeveling.

Screenshot of Query Performance Overview.

Azure Portal biedt ook Inzicht in queryprestaties, een hulpprogramma voor visueel rapporteren dat is gebaseerd op de Query Store. In dit voorbeeld toont Inzicht in queryprestaties de specifieke query die de meeste resources verbruikt en wordt geadviseerd hoe de queryprestaties kunnen worden verbeterd.

Screenshot of Query Performance Insights.

Azure Portal biedt ook een manier om de prestatieaanbevelingen direct te bekijken.

Screenshot of Performance Recommendations.

In deze weergave ziet u specifieke aanbevelingen en de geschiedenis van alle acties waarbij automatisch is afgestemd. In het geval van een index worden de details van de index en de tabel weergegeven. Met de optie Automatiseren kunt u automatisch afstemmen.

Screenshot of automatic tuning options.

U kunt opties voor automatisch afstemmen instellen op de databaseserver of op databaseniveau. Als u automatische afstemming in dit scenario hebt ingeschakeld, wordt de index automatisch gemaakt.

U kunt ook opties voor automatisch afstemmen bekijken via de sys.database_automatic_tuning_options DMV.

Notitie

Aanbevelingen en automatisering voor indexen en parametergevoelige plannen zijn niet beschikbaar voor Azure SQL Managed Instance of SQL Server. Automatische correctie van plannen is beschikbaar.

Als u de aanbevolen index selecteert, krijgt u meer informatie over de specifieke index.

Screenshot of create index recommendation.

U ziet details over de vereiste index, tabel en ruimte. U hebt de optie de aanbevolen index toe te passen of een T-SQL-script te bekijken dat de index toepast.

Screenshot of the index recommendation script.

U ziet dat de index een niet-geclusterde index is die als online index wordt toegepast. Wanneer een index is toegepast op basis van een aanbeveling, hetzij handmatig of via automatisch afstemmen, controleert de aanbevelingsengine ook de queryprestaties over een bepaalde tijdsperiode met de toegepaste index. Als de queryprestaties afnemen in vergelijking met de periode voordat de index werd toegepast, kunt u de index verwijderen.

Kenniscontrole

1.

Wat is de beste beschrijving van Intelligent Query Processing of intelligente query-uitvoering (IQP)?

2.

Automatische correctie van plannen kan helpen bij het aanbevelen en oplossen van welk type prestatiescenario?

3.

Automatisch afstemmen voor Azure SQL Database kan indexen aanraden en maken gebaseerd op welke informatie?