Migratieprestaties: basislijn voor prestaties van SQL Server naar Azure SQL Managed Instance

Van toepassing op: Azure SQL Managed Instance

Maak een prestatiebasislijn om de prestaties van uw workload in een SQL Managed Instance te vergelijken met uw oorspronkelijke workload die wordt uitgevoerd op SQL Server.

Een basislijn maken

In het ideale geval zijn de prestaties vergelijkbaar of beter na de migratie, dus het is belangrijk om prestatiewaarden van de basislijn op de bron te meten en vast te leggen en deze vervolgens te vergelijken met de doelomgeving. Een prestatiebasislijn is een set parameters waarmee uw gemiddelde workload voor uw bron wordt gedefinieerd.

Selecteer een set query's die belangrijk zijn voor en vertegenwoordiger van uw bedrijfsworkload. Meet en documenteer de minimale/gemiddelde/maximale duur en het CPU-gebruik voor deze query's, evenals metrische prestatiegegevens op de bronserver, zoals gemiddeld/max CPU-gebruik, gemiddelde/max schijf-IO-latentie, doorvoer, IOPS, gemiddelde/maximale levensduur van pagina's en gemiddelde maximale grootte van tempdb.

De volgende resources kunnen helpen bij het definiëren van een prestatiebasislijn:

  • CPU-gebruik bewaken
  • Bewaak het geheugengebruik en bepaal de hoeveelheid geheugen die door verschillende onderdelen wordt gebruikt, zoals buffergroep, plancache, kolomopslaggroep, OLTP in het geheugen, enzovoort. Daarnaast moet u de gemiddelde en piekwaarden van het prestatiemeteritem Pagina levensverwachting van het geheugen vinden.
  • Bewaak het IO-gebruik van de schijf op het SQL Server-bronexemplaren met behulp van de sys.dm_io_virtual_file_stats weergave of prestatiemeteritems.
  • Bewaak workload- en queryprestaties door dynamische beheerweergaven (of Query Store te bekijken als u migreert vanuit SQL Server 2016 en hoger). Identificeer de gemiddelde duur en het CPU-gebruik van de belangrijkste query's in uw workload.

Prestatieproblemen op de sql-bronserver moeten vóór de migratie worden opgelost. Het migreren van bekende problemen naar een nieuw systeem kan onverwachte resultaten veroorzaken en een prestatievergelijking ongeldig maken.

Prestaties vergelijken

Nadat u een basislijn hebt gedefinieerd, vergelijkt u vergelijkbare workloadprestaties op het doel-SQL Managed Instance. Voor nauwkeurigheid is het belangrijk dat de sql Managed Instance-omgeving zoveel mogelijk vergelijkbaar is met de SQL Server-omgeving.

Er zijn verschillen in de infrastructuur van SQL Managed Instance die ervoor zorgen dat de prestaties exact onwaarschijnlijk zijn. Sommige query's kunnen sneller worden uitgevoerd dan verwacht, terwijl andere mogelijk trager zijn. Het doel van deze vergelijking is om te controleren of de prestaties van de werkbelasting in het beheerde exemplaar overeenkomen met de prestaties van SQL Server (gemiddeld) en om kritieke query's te identificeren met prestaties die niet overeenkomen met de oorspronkelijke prestaties.

Prestatievergelijking resulteert waarschijnlijk in de volgende resultaten:

  • Workloadprestaties op het beheerde exemplaar worden uitgelijnd of beter dan de workloadprestaties op uw bron-SQL Server. In dit geval hebt u bevestigd dat de migratie is geslaagd.

  • Het merendeel van de prestatieparameters en query's in de workload worden zoals verwacht uitgevoerd, met enkele uitzonderingen die leiden tot verminderde prestaties. In dit geval identificeert u de verschillen en hun belang. Als er enkele belangrijke query's zijn met verminderde prestaties, onderzoekt u of de onderliggende SQL-plannen zijn gewijzigd of dat query's resourcelimieten bereiken. U kunt dit verhelpen door enkele hints toe te passen op kritieke query's (bijvoorbeeld compatibiliteitsniveau wijzigen, verouderde kardinaliteitsschatter) rechtstreeks of met behulp van planhandleidingen. Zorg ervoor dat statistieken en indexen up-to-date en gelijkwaardig zijn in beide omgevingen.

  • De meeste query's zijn langzamer op een beheerd exemplaar vergeleken met uw SQL Server-bronexemplaren. Probeer in dit geval de hoofdoorzaken van het verschil te identificeren, zoals het bereiken van een resourcelimiet , zoals I/O-, geheugen- of frequentielimieten voor instantielogboeken. Als er geen resourcelimieten zijn die het verschil veroorzaken, wijzigt u het compatibiliteitsniveau van de database of wijzigt u de database-instellingen, zoals een schatting van verouderde kardinaliteit en voert u de test opnieuw uit. Bekijk de aanbevelingen van het beheerde exemplaar of de Query Store-weergaven om de query's te identificeren met teruggedraaide prestaties.

SQL Managed Instance heeft een ingebouwde functie voor automatische correctie van plannen die standaard is ingeschakeld. Deze functie zorgt ervoor dat query's die in het verleden prima werkten, in de toekomst niet afnemen. Als deze functie niet is ingeschakeld, voert u de workload uit met de oude instellingen, zodat SQL Managed Instance de prestatiebasislijn kan leren. Schakel vervolgens de functie in en voer de workload opnieuw uit met de nieuwe instellingen.

Breng wijzigingen aan in de parameters van uw test of voer een upgrade uit naar hogere servicelagen om de optimale configuratie te bereiken voor de prestaties van de workload die aan uw behoeften voldoen.

Prestaties bewaken

SQL Managed Instance biedt geavanceerde hulpprogramma's voor bewaking en probleemoplossing. U moet deze hulpprogramma's gebruiken om de prestaties van uw exemplaar te bewaken. Enkele van de belangrijkste metrische gegevens die moeten worden bewaakt, zijn:

  • CPU-gebruik op het exemplaar om te bepalen of het aantal vCores dat u hebt ingericht, de juiste overeenkomst is voor uw workload.
  • De levensverwachting van pagina's op uw beheerde exemplaar om te bepalen of u extra geheugen nodig hebt.
  • Statistieken zoals INSTANCE_LOG_GOVERNOR of PAGEIOLATCH die io-problemen met opslag identificeren, met name op de laag Algemeen gebruik, waar u mogelijk bestanden vooraf moet toewijzen om betere IO-prestaties te krijgen.

Overwegingen

Houd rekening met het volgende bij het vergelijken van de prestaties:

  • Instellingen komen overeen tussen de bron en het doel. Controleer of verschillende exemplaren, databases en tempdb instellingen gelijk zijn aan de twee omgevingen. Verschillen in configuratie, compatibiliteitsniveaus, versleutelingsinstellingen, traceringsvlagmen, enzovoort, kunnen allemaal scheeftrekkende prestaties.

  • Opslag wordt geconfigureerd volgens de aanbevolen procedures. Voor algemeen gebruik moet u bijvoorbeeld mogelijk vooraf de grootte van de bestanden toewijzen om de prestaties te verbeteren.

  • Er zijn belangrijke omgevingsverschillen die de prestatieverschillen tussen een beheerd exemplaar en SQL Server kunnen veroorzaken. Identificeer risico's die relevant zijn voor uw omgeving die kunnen bijdragen aan een prestatieprobleem.

  • Query store en automatisch afstemmen moeten zijn ingeschakeld voor uw met SQL beheerde exemplaar, omdat u hiermee de prestaties van de workload kunt meten en mogelijke prestatieproblemen automatisch kunt verhelpen.

Volgende stappen

Zie de volgende resources voor meer informatie over het optimaliseren van uw nieuwe Azure SQL Managed Instance-omgeving: