Aanbevelingen voor prestaties van Database Advisor voor Azure SQL Database

Van toepassing op: Azure SQL-database

Azure SQL Database leert en past deze 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 bieden aanbevelingen op basis van workloadpatronen die de prestaties helpen verbeteren.

Overzicht van prestaties

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

Prestatieoverzicht voor Azure SQL Database

  • De tegel Aanbevelingen bevat een uitsplitsing van de aanbevelingen voor uw database (de drie belangrijkste aanbevelingen worden weergegeven als er meer zijn). Als u op deze tegel klikt, gaat u naar opties voor prestatieaanaanveling.
  • De tegel Afstemmingsactiviteit 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 van 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 automatiseringsconfiguratie geopend.
  • De tegel Databasequery's toont de samenvatting van de queryprestaties voor uw database (algemeen DTU-gebruik en query's die het meest worden gebruikt voor resources). Als u op deze tegel klikt, gaat u naar Query Performance Insight.

Opties voor aanbevelingen voor prestaties

Opties voor prestatieaankopen die beschikbaar zijn in Azure SQL Database zijn:

Aanbeveling voor prestaties Ondersteuning voor individuele databases en pooldatabases Ondersteuning voor exemplaardatabases
Indexaanbevelingen maken : raadt het maken van indexen aan die de prestaties van uw workload kunnen verbeteren. Ja Nee
Aanbevelingen voor verwijderen van indexen: raadt het dagelijks verwijderen van redundante en dubbele indexen aan, met uitzondering van unieke indexen en indexen die gedurende lange tijd niet zijn gebruikt (>90 dagen). Houd er rekening mee dat deze optie niet compatibel is met toepassingen die gebruikmaken van partitiewisselingen en indexhints. Het verwijderen van ongebruikte indexen wordt niet ondersteund voor Premium- en Bedrijfskritiek-servicelagen. Ja Nee
Aanbevelingen voor query's parameteriseren (preview): hiermee wordt geforceerde parameterisatie aanbevolen in gevallen waarin u een of meer query's hebt die voortdurend opnieuw worden gecompileerd, maar uiteindelijk hetzelfde queryuitvoeringsplan hebben. Ja Nee
Aanbevelingen voor schemaproblemen oplossen (preview) - Aanbevelingen voor schemacorrectie worden weergegeven wanneer Azure SQL Database een anomalie ziet in het aantal schemagerelateerde SQL-fouten dat op uw database plaatsvindt. Microsoft beëindigt momenteel aanbevelingen voor het oplossen van schemaproblemen. Ja Nee

Prestatieaan aanbevelingen voor Azure SQL Database

Zie Aanbevelingen toepassen om prestatieaan aanbevelingen toe te passen. Zie Bewakingsbewerkingen om de status van aanbevelingen weer te geven.

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

Indexaan aanbevelingen 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 door het schatten van de prestatiewinst die de index in de loop van de tijd zou opleveren. 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 de weergave sys.indexes te bekijken. Automatisch gemaakte indexen blokkeren ALTER-/RENAME-opdrachten niet.

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

Nadat de aanbeveling voor het maken van de index is toegepast, vergelijkt Azure SQL Database de prestaties van de query's met de basislijnprestaties. Als de nieuwe index de prestaties verbetert, wordt de aanbeveling gemarkeerd als geslaagd en is het impactrapport beschikbaar. Als de index de prestaties niet heeft verbeterd, wordt deze automatisch teruggezet. Azure SQL Database gebruikt dit proces om ervoor te zorgen dat aanbevelingen de prestaties van de database verbeteren.

Elke aanbeveling voor het maken van een index heeft een back-off-beleid dat het toepassen van de aanbeveling niet toestaat als het resourcegebruik van een database of pool hoog is. Het back-off-beleid houdt rekening met CPU, Gegevens-I/O, Logboek-I/O en beschikbare opslag.

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

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

Aanbevelingen voor het verwijderen van indexen

Naast het detecteren van ontbrekende indexen, analyseert Azure SQL Database continu de prestaties van bestaande indexen. Als een index niet wordt gebruikt, adviseert Azure SQL Database de index te verwijderen. Het is in twee gevallen raadzaam om een index te verwijderen:

  • 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 verwijderen van indexen doorlopen ook de verificatie na de implementatie. Als de prestaties verbeteren, is het impactrapport beschikbaar. Als de prestaties verslechteren, wordt de aanbeveling teruggedraaid.

Aanbevelingen voor query's parameteriseren (preview)

Aanbevelingen voor parameterizequery's worden weergegeven wanneer u een of meer query's hebt die voortdurend opnieuw worden gecompileerd, maar uiteindelijk hetzelfde queryuitvoeringsplan hebben. Deze voorwaarde maakt een mogelijkheid om geforceerde parameterisatie toe te passen. Met geforceerde parameterisatie kunnen queryplannen in de cache worden opgeslagen en in de toekomst opnieuw worden gebruikt, waardoor de prestaties worden verbeterd en het resourcegebruik wordt verminderd.

Elke query moet in eerste instantie 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 extra 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 voor geforceerde parameterisatie in te stellen op de database.

Om u te helpen bij het schatten van de impact van deze aanbeveling, krijgt u een vergelijking tussen het werkelijke CPU-gebruik en het verwachte CPU-gebruik (alsof de aanbeveling is toegepast). Met deze aanbeveling kunt u CPU-besparingen verkrijgen. Het kan u ook helpen de queryduur en overhead voor de plancache te verlagen, wat betekent dat meer van de 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 geforceerde parameterisatie binnen enkele minuten in uw database ingeschakeld. Het bewakingsproces wordt gestart, dat ongeveer 24 uur duurt. Na deze periode ziet u het validatierapport. Dit rapport toont het CPU-gebruik van uw database 24 uur voor en nadat de aanbeveling is toegepast. Azure SQL Database Advisor heeft een veiligheidsmechanisme waarmee de toegepaste aanbeveling automatisch wordt teruggedraaid als er prestatieregressie is gedetecteerd.

Aanbevelingen voor schemaproblemen oplossen (preview)

Belangrijk

Microsoft beëindigt momenteel aanbevelingen voor het oplossen van schemaproblemen. U wordt aangeraden Intelligent Insights te gebruiken om de prestatieproblemen van uw database te bewaken, inclusief schemaproblemen die eerder zijn besproken met de aanbevelingen voor het oplossen van schemaproblemen.

Er worden aanbevelingen voor schemaproblemen opgelost wanneer Azure SQL Database een anomalie ziet in het aantal schemagerelateerde SQL-fouten die zich in uw database voordoen. Deze aanbeveling wordt meestal weergegeven wanneer uw database binnen een uur meerdere schemagerelateerde fouten ondervindt (ongeldige kolomnaam, ongeldige objectnaam, enzovoort).

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 worden verwacht, ontbreekt bijvoorbeeld in de doeltabel of omgekeerd.

De aanbeveling Schemaprobleem oplossen wordt weergegeven wanneer Azure SQL Database een anomalie ziet in het aantal sql-fouten met betrekking tot schema's die zich voordoen in uw database. 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 de 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 prestatieaanaanveling voor Azure SQL Database. Alle aanbevelingen die worden vermeld in de portal voor een database, kunnen worden geopend via de Get-AzSqlDatabaseRecommendedAction-API .

Volgende stappen