Migreringsprestanda: Prestandabaslinje för SQL Server till Azure SQL Managed Instance

Gäller för:Azure SQL Managed Instance

Skapa en prestandabaslinje för att jämföra arbetsbelastningens prestanda på en SQL Managed Instance med den ursprungliga arbetsbelastningen som körs på SQL Server.

Skapa en baslinje

I bästa fall är prestandan liknande eller bättre efter migreringen, så det är viktigt att mäta och registrera baslinjeprestandavärden på källan och sedan jämföra dem med målmiljön. En prestandabaslinje är en uppsättning parametrar som definierar din genomsnittliga arbetsbelastning på källan.

Välj en uppsättning frågor som är viktiga för och representativa för din affärsarbetsbelastning. Mät och dokumentera varaktigheten min/average/max och CPU-användning för dessa frågor, samt prestandamått på källservern, till exempel genomsnittlig/maximal CPU-användning, genomsnittlig/maximal disk-I/O-svarstid, dataflöde, IOPS, genomsnittlig/maximal förväntad sidlivslängd och genomsnittlig maxstorlek för tempdb.

Följande resurser kan hjälpa dig att definiera en prestandabaslinje:

  • Övervaka CPU-användning
  • Övervaka minnesanvändningen och fastställa mängden minne som används av olika komponenter, till exempel buffertpool, plancache, kolumnlagringspool, minnesintern OLTP osv. Dessutom bör du hitta genomsnittliga och högsta värden för prestandaräknaren för förväntad sidlivslängd.
  • Övervaka diskens I/O-användning på SQL Server-källinstansen med hjälp av sys.dm_io_virtual_file_stats visnings- eller prestandaräknare.
  • Övervaka arbetsbelastnings- och frågeprestanda genom att undersöka dynamiska hanteringsvyer (eller Query Store om du migrerar från SQL Server 2016 och senare). Identifiera genomsnittlig varaktighet och CPU-användning för de viktigaste frågorna i din arbetsbelastning.

Eventuella prestandaproblem på SQL Server-källan bör åtgärdas före migreringen. Om du migrerar kända problem till ett nytt system kan det orsaka oväntade resultat och göra prestandajämförelser ogiltiga.

Jämför prestanda

När du har definierat en baslinje kan du jämföra liknande arbetsbelastningsprestanda på sql-målhanterad instans. För noggrannhet är det viktigt att SQL Managed Instance-miljön är jämförbar med SQL Server-miljön så mycket som möjligt.

Det finns skillnader i SQL Managed Instance-infrastrukturen som gör matchande prestanda exakt osannolik. Vissa frågor kan köras snabbare än förväntat, medan andra kan vara långsammare. Målet med den här jämförelsen är att kontrollera att arbetsbelastningens prestanda i den hanterade instansen matchar prestandan på SQL Server (i genomsnitt) och att identifiera kritiska frågor med prestanda som inte matchar dina ursprungliga prestanda.

Prestandajämförelse resulterar sannolikt i följande resultat:

  • Arbetsbelastningens prestanda på den hanterade instansen är justerad eller bättre än arbetsbelastningens prestanda på sql-källservern. I det här fallet har du bekräftat att migreringen lyckades.

  • De flesta prestandaparametrar och frågor i arbetsbelastningen fungerar som förväntat, med vissa undantag som resulterar i försämrade prestanda. I det här fallet kan du identifiera skillnaderna och deras betydelse. Om det finns några viktiga frågor med försämrad prestanda kan du undersöka om de underliggande SQL-planerna har ändrats eller om frågor når resursgränser. Du kan minimera detta genom att använda några tips på kritiska frågor (till exempel ändra kompatibilitetsnivå, äldre kardinalitetsestimator) antingen direkt eller med hjälp av planguider. Se till att statistik och index är uppdaterade och likvärdiga i båda miljöerna.

  • De flesta frågor är långsammare på en hanterad instans jämfört med SQL Server-källinstansen. I det här fallet kan du försöka identifiera de bakomliggande orsakerna till skillnaden, till exempel att nå en viss resursgräns , till exempel I/O, minne eller instanslogghastighetsgränser. Om det inte finns några resursgränser som orsakar skillnaden kan du prova att ändra databasens kompatibilitetsnivå eller ändra databasinställningar som äldre kardinalitetsuppskattning och köra testet igen. Granska rekommendationerna från den hanterade instansen eller Query Store-vyerna för att identifiera frågorna med regresserad prestanda.

SQL Managed Instance har en inbyggd funktion för automatisk plankorrigering som är aktiverad som standard. Den här funktionen säkerställer att frågor som fungerat bra tidigare inte försämras i framtiden. Om den här funktionen inte är aktiverad kör du arbetsbelastningen med de gamla inställningarna så att SQL Managed Instance kan lära sig prestandabaslinjen. Aktivera sedan funktionen och kör arbetsbelastningen igen med de nya inställningarna.

Gör ändringar i parametrarna för testet eller uppgradera till högre tjänstnivåer för att nå den optimala konfigurationen för arbetsbelastningens prestanda som passar dina behov.

Övervaka prestanda

SQL Managed Instance innehåller avancerade verktyg för övervakning och felsökning, och du bör använda dem för att övervaka prestanda på din instans. Några av de viktigaste måtten som ska övervakas är:

  • CPU-användning på instansen för att avgöra om antalet virtuella kärnor som du har etablerat är rätt matchning för din arbetsbelastning.
  • Förväntad sidlivslängd på den hanterade instansen för att avgöra om du behöver ytterligare minne.
  • Statistik som INSTANCE_LOG_GOVERNOR eller PAGEIOLATCH som identifierar lagrings-I/O-problem, särskilt på nivån Generell användning, där du kan behöva förallokera filer för att få bättre I/O-prestanda.

Att tänka på

När du jämför prestanda bör du tänka på följande:

  • Inställningarna matchar mellan källa och mål. Kontrollera att olika instanser, databaser och tempdb inställningar är likvärdiga mellan de två miljöerna. Skillnader i konfiguration, kompatibilitetsnivåer, krypteringsinställningar, spårningsflaggor osv., kan alla skeva prestanda.

  • Lagringen konfigureras enligt bästa praxis. För generell användning kan du till exempel behöva förallokera storleken på filerna för att förbättra prestandan.

  • Det finns viktiga miljöskillnader som kan orsaka prestandaskillnader mellan en hanterad instans och SQL Server. Identifiera risker som är relevanta för din miljö som kan bidra till ett prestandaproblem.

  • Frågearkiv och automatisk justering bör aktiveras på din SQL Managed Instance eftersom de hjälper dig att mäta arbetsbelastningens prestanda och automatiskt minska potentiella prestandaproblem.

Nästa steg

Mer information om hur du optimerar din nya Azure SQL Managed Instance-miljö finns i följande resurser: