Database Advisor prestatieaanbevelingen voor Azure SQL Database

VAN TOEPASSING OP: Azure SQL Database

Azure SQL Database leert en past zich aan met uw toepassing. Azure SQL Database heeft een aantal databaseadviseurs die aangepaste aanbevelingen bieden waarmee u de prestaties kunt maximaliseren. Deze databaseadviseurs beoordelen en analyseren continu de gebruiksgeschiedenis en doen aanbevelingen op basis van workloadpatronen die helpen de prestaties te verbeteren.

Prestatieoverzicht

Prestatieoverzicht biedt een overzicht van de prestaties van uw database en helpt u bij het afstemmen van prestaties en het oplossen van problemen.

Prestatieoverzicht voor Azure SQL Database

  • De tegel Aanbevelingen biedt een uitsplitsing van de afstemmingsaanbevelingen voor uw database (de drie belangrijkste aanbevelingen worden weergegeven als er meer zijn). Als u op deze tegel klikt, gaat u naar Prestatieaanbevelingsopties.
  • De tegel Activiteit afstemmen biedt een overzicht van de lopende en voltooide afstemmingsacties voor uw database, zodat u snel inzicht krijgt in de geschiedenis van de afstemmingsactiviteit. Als u op deze tegel klikt, gaat u naar de volledige weergave voor de afstemmingsgeschiedenis voor uw database.
  • De tegel Automatisch afstemmen toont de configuratie voor automatisch afstemmen voor uw database (afstemmingsopties die automatisch worden toegepast op uw database). Als u op deze tegel klikt, wordt het dialoogvenster automation-configuratie geopend.
  • De tegel Databasequery's toont de samenvatting van de queryprestaties voor uw database (algemeen DTU-gebruik en query's die de meeste resources verbruiken). Als u op deze tegel klikt, gaat u Query Performance Insight.

Opties voor prestatieaanbevelingen

Opties voor prestatieaanbevelingen die beschikbaar Azure SQL Database zijn:

Prestatieaanbeveling Ondersteuning voor individuele databases en pooldatabases Ondersteuning voor exemplaardatabase
Aanbevelingen voor indexen maken: u wordt aangeraden indexen te maken die de prestaties van uw workload kunnen verbeteren. Ja Nee
Aanbevelingen voor het verwijderen van indexen: aanbevolen om redundante en dubbele indexen dagelijks te verwijderen, met uitzondering van unieke indexen en indexen die lange tijd niet zijn gebruikt (>90 dagen). Houd er rekening mee dat deze optie niet compatibel is met toepassingen die gebruikmaken van partition switching en indexhints. Het wegvallen van ongebruikte indexen wordt niet ondersteund voor Premium- Bedrijfskritiek servicelagen. Ja Nee
Aanbevelingen voor query's parameteriseren (preview) - raadt geforceerd parameteriseren aan in gevallen waarin u een of meer query's hebt die voortdurend opnieuw worden gecompileerd, maar uiteindelijk hetzelfde uitvoeringsplan voor query's hebben. Ja Nee
Aanbevelingen voor schemaproblemen oplossen (preview) - Aanbevelingen voor schemacorrectie worden weergegeven wanneer Azure SQL Database een afwijking in het aantal schemagerelateerde SQL-fouten in uw database opmerkt. Microsoft heeft momenteel de aanbevelingen voor het oplossen van schema's afgeschaft. Ja Nee

Prestatieaanbevelingen voor Azure SQL Database

Zie Aanbevelingen toepassen om prestatieaanbevelingen toe te passen. Zie Bewakingsbewerkingen voor de status van aanbevelingen.

U kunt ook de volledige geschiedenis vinden van afstemmingsacties die in het verleden zijn toegepast.

Indexaanbevelingen maken

Azure SQL Database bewaakt continu de query's die worden uitgevoerd en identificeert de indexen die de prestaties kunnen verbeteren. Nadat er voldoende vertrouwen is dat een bepaalde index ontbreekt, wordt er een nieuwe aanbeveling Voor het maken van een index gemaakt.

Azure SQL Database bouwt vertrouwen op door de prestatieverbetering te schatten die de index door de tijd zou halen. Afhankelijk van de geschatte prestatieverbetering worden aanbevelingen gecategoriseerd als hoog, gemiddeld of laag.

Indexen die zijn gemaakt met behulp van aanbevelingen, worden altijd gemarkeerd als automatisch gemaakte indexen. U kunt zien welke indexen automatisch worden gemaakt door te kijken naar de weergave sys.indexes. Automatisch gemaakte indexen blokkeren de opdrachten ALTER/RENAME niet.

Als u probeert de kolom met een automatisch gemaakte index te verwijderen, wordt de opdracht door gegeven. De automatisch gemaakte index wordt ook met de opdracht uitgevallen. Reguliere indexen blokkeren de opdracht ALTER/RENAME voor kolommen die worden geïndexeerd.

Nadat de aanbeveling voor het maken van een index is toegepast, Azure SQL Database de prestaties van de query's vergeleken met de basislijnprestaties. Als de prestaties van de nieuwe index zijn verbeterd, wordt de aanbeveling gemarkeerd als geslaagd en is het impactrapport beschikbaar. Als de index de prestaties niet heeft verbeterd, wordt deze automatisch teruggedraaid. Azure SQL Database maakt gebruik van dit proces om ervoor te zorgen dat aanbevelingen de databaseprestaties verbeteren.

Elke aanbeveling voor het maken van een index heeft een back-offbeleid waarmee de aanbeveling niet kan worden toegepast als het resourcegebruik van een database of pool hoog is. Bij het beleid voor afmelding wordt rekening gehouden met CPU, gegevens-IO, logboek-I/O en beschikbare opslag.

Als de CPU, gegevens-I/O of logboek-I/O in de afgelopen 30 minuten hoger is dan 80%, wordt de aanbeveling voor het maken van een index uitgesteld. Als de beschikbare opslag lager is dan 10% nadat de index is gemaakt, krijgt de aanbeveling een foutmelding. Als na een paar dagen automatisch afstemmen nog steeds van mening is dat de index nuttig is, wordt het proces opnieuw gestart.

Dit proces wordt herhaald totdat er voldoende opslagruimte beschikbaar is om een index te maken, of totdat de index niet meer als nuttig wordt gezien.

Aanbevelingen voor indexen neerzetten

Naast het detecteren van ontbrekende indexen, Azure SQL Database de prestaties van bestaande indexen continu geanalyseerd. Als er geen index wordt gebruikt, wordt Azure SQL Database aanbevolen om deze te laten vallen. Het is raadzaam om in twee gevallen een index te laten vallen:

  • De index is een duplicaat van een andere index (dezelfde geïndexeerde en opgenomen kolom, partitieschema en filters).
  • De index is gedurende een langere periode (93 dagen) niet gebruikt.

Aanbevelingen voor het neerzetten van de index worden ook na de implementatie door de verificatie uitgevoerd. Als de prestaties verbeteren, is het impactrapport beschikbaar. Als de prestaties verslechteren, wordt de aanbeveling teruggedraaid.

Aanbevelingen voor query's parameteriseren (preview)

Aanbevelingen voor query's parameteriseren worden weergegeven wanneer u een of meer query's hebt die voortdurend opnieuw worden gecompileerd, maar uiteindelijk hetzelfde uitvoeringsplan voor query's hebben. Deze voorwaarde biedt een mogelijkheid om geforceerd parameteriseren toe te passen. Met geforceerd parameteriseren kunnen queryplannen op zijn beurt in de cache worden opgeslagen en in de toekomst opnieuw worden gebruikt, waardoor de prestaties worden verbeterd en het resourcegebruik wordt beperkt.

In eerste instantie moet elke query worden gecompileerd om een uitvoeringsplan te genereren. Elk gegenereerd plan wordt toegevoegd aan de plancache. Volgende uitvoeringen van dezelfde query kunnen dit plan opnieuw gebruiken vanuit de cache, waardoor er geen aanvullende compilatie meer nodig is.

Query's met waarden zonder parameters kunnen leiden tot prestatie-overhead, omdat het uitvoeringsplan opnieuw wordt gecompileerd telkens wanneer de waarden zonder parameters 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. Dit gedrag kan worden gewijzigd door de optie geforceerd parameteriseren in te stellen voor de database.

Om u te helpen bij het schatten van de impact van deze aanbeveling, wordt u een vergelijking geboden tussen het werkelijke CPU-gebruik en het verwachte CPU-gebruik (alsof de aanbeveling is toegepast). Met deze aanbeveling kunt u CPU-besparingen behalen. Het kan u ook helpen de queryduur en overhead voor de plancache te verlagen, wat betekent dat meer plannen in de cache kunnen blijven en opnieuw kunnen worden gebruikt. U kunt deze aanbeveling snel toepassen door de opdracht Toepassen te selecteren.

Nadat u deze aanbeveling hebt toegepast, wordt geforceerd parameteriseren binnen enkele minuten in uw database mogelijk. Het bewakingsproces wordt gestart. Dit duurt ongeveer 24 uur. Na deze periode ziet u het validatierapport. Dit rapport toont het CPU-gebruik van uw database 24 uur vóór en nadat de aanbeveling is toegepast. Azure SQL Database Advisor een veiligheidsmechanisme dat automatisch de toegepaste aanbeveling terugdraait als er prestatie regressie is gedetecteerd.

Aanbevelingen voor schemaproblemen oplossen (preview)

Belangrijk

Microsoft heeft momenteel de aanbevelingen voor het oplossen van schema's afgeschaft. We raden u aan om Intelligent Insights te gebruiken voor het bewaken van prestatieproblemen van uw database, inclusief schemaproblemen die eerder zijn behandeld in de aanbevelingen voor het oplossen van schema's.

Aanbevelingen voor het oplossen van schemaproblemen worden weergegeven wanneer Azure SQL Database een afwijking ziet in het aantal schemagerelateerde SQL-fouten dat zich voordeed in uw database. Deze aanbeveling wordt doorgaans weergegeven wanneer uw database binnen een uur meerdere schemagerelateerde fouten (ongeldige kolomnaam, ongeldige objectnaam, e.d.) tegenkomt.

Schemaproblemen zijn een klasse syntaxisfouten. Ze treden op wanneer de definitie van de SQL-query en de definitie van het databaseschema niet zijn uitgelijnd. Een van de kolommen die door de query wordt verwacht, ontbreekt bijvoorbeeld mogelijk in de doeltabel of vice versa.

De aanbeveling 'Schemaprobleem oplossen' wordt weergegeven wanneer Azure SQL Database een anomalie in het aantal schemagerelateerde SQL-fouten in uw database opmerkt. In de volgende tabel ziet u de fouten die betrekking hebben op schemaproblemen:

SQL-foutcode Bericht
201 Procedure of functie ' verwacht parameter ', die niet is opgegeven.
207 Ongeldige kolomnaam '*'.
208 Ongeldige objectnaam '*'.
213 De kolomnaam of het aantal opgegeven waarden komt niet overeen met de tabeldefinitie.
2812 Kan opgeslagen procedure '*' niet vinden.
8144 Procedure of functie * heeft te veel argumenten opgegeven.

Aangepaste toepassingen

Ontwikkelaars kunnen overwegen om aangepaste toepassingen te ontwikkelen met behulp van prestatieaanbevelingen voor Azure SQL Database. Alle aanbevelingen die worden vermeld in de portal voor een database, zijn toegankelijk via de Get-AzSqlDatabaseRecommendedAction-API.

Volgende stappen