Wydajność migracji: punkt odniesienia wydajności programu SQL Server do usługi Azure SQL Managed Instance

Dotyczy:Azure SQL Managed Instance

Utwórz punkt odniesienia wydajności, aby porównać wydajność obciążenia w usłudze SQL Managed Instance z oryginalnym obciążeniem uruchomionym w programie SQL Server.

Tworzenie punktu odniesienia

W idealnym przypadku wydajność jest podobna lub lepsza po migracji, dlatego ważne jest, aby mierzyć i rejestrować wartości wydajności punktu odniesienia w źródle, a następnie porównywać je ze środowiskiem docelowym. Punkt odniesienia wydajności to zestaw parametrów definiujących średnie obciążenie w źródle.

Wybierz zestaw zapytań, które są ważne i reprezentatywne dla obciążenia biznesowego. Mierz i dokumentuj minimalny/średni/maksymalny czas trwania i użycie procesora CPU dla tych zapytań, a także metryki wydajności na serwerze źródłowym, takie jak średnie/maksymalne użycie procesora CPU, średnie/maksymalne opóźnienie operacji we/wy dysku, przepływność, liczba operacji we/wy na sekundę, średnia/ maksymalna długość życia strony oraz średni maksymalny rozmiar bazy danych tempdb.

Następujące zasoby mogą pomóc w zdefiniowaniu punktu odniesienia wydajności:

  • Monitorowanie użycia procesora CPU
  • Monitoruj użycie pamięci i określ ilość pamięci używanej przez różne składniki, takie jak pula buforów, pamięć podręczna planu, pula magazynu kolumn, olTP w pamięci itp. Ponadto należy znaleźć średnie i szczytowe wartości licznika wydajności pamięci Oczekiwana długość życia strony.
  • Monitorowanie użycia operacji we/wy dysku w źródłowym wystąpieniu programu SQL Server przy użyciu liczników wydajności lub widoku sys.dm_io_virtual_file_stats.
  • Monitoruj wydajność obciążeń i zapytań, sprawdzając dynamiczne widoki zarządzania (lub magazyn zapytań, jeśli migrujesz z programu SQL Server 2016 lub nowszego). Zidentyfikuj średni czas trwania i użycie procesora CPU najważniejszych zapytań w obciążeniu.

Przed migracją należy rozwiązać wszelkie problemy z wydajnością źródłowego programu SQL Server. Migrowanie znanych problemów do dowolnego nowego systemu może spowodować nieoczekiwane wyniki i unieważnić dowolne porównanie wydajności.

Porównanie wydajności

Po zdefiniowaniu punktu odniesienia porównaj podobną wydajność obciążenia z docelowym wystąpieniem zarządzanym SQL. W celu zapewnienia dokładności ważne jest, aby środowisko usługi SQL Managed Instance było porównywalne ze środowiskiem programu SQL Server, jak to możliwe.

Istnieją różnice w infrastrukturze usługi SQL Managed Instance, które sprawiają, że dopasowanie wydajności jest dokładnie mało prawdopodobne. Niektóre zapytania mogą działać szybciej niż oczekiwano, podczas gdy inne mogą być wolniejsze. Celem tego porównania jest sprawdzenie, czy wydajność obciążenia w wystąpieniu zarządzanym jest zgodna z wydajnością programu SQL Server (średnio) oraz do identyfikowania zapytań krytycznych z wydajnością, które nie pasują do oryginalnej wydajności.

Porównanie wydajności może spowodować następujące wyniki:

  • Wydajność obciążenia w wystąpieniu zarządzanym jest zgodna lub wyższa niż wydajność obciążenia w źródłowym programie SQL Server. W takim przypadku pomyślnie potwierdzono, że migracja zakończyła się pomyślnie.

  • Większość parametrów wydajności i zapytań w obciążeniu działa zgodnie z oczekiwaniami, z pewnymi wyjątkami, co powoduje obniżenie wydajności. W tym przypadku zidentyfikuj różnice i ich znaczenie. Jeśli istnieją pewne ważne zapytania o obniżonej wydajności, sprawdź, czy bazowe plany SQL uległy zmianie, czy zapytania osiągną limity zasobów. Można temu zapobiec, stosując pewne wskazówki dotyczące zapytań krytycznych (na przykład poziom zgodności zmian, starszy narzędzie do szacowania kardynalności) bezpośrednio lub przy użyciu przewodników planu. Upewnij się, że statystyki i indeksy są aktualne i równoważne w obu środowiskach.

  • Większość zapytań jest wolniejsza w wystąpieniu zarządzanym w porównaniu ze źródłowym wystąpieniem programu SQL Server. W takim przypadku spróbuj zidentyfikować główne przyczyny różnicy, takie jak osiągnięcie limitu zasobów, takiego jak we/wy, pamięć lub limity szybkości dzienników wystąpień. Jeśli nie ma żadnych limitów zasobów powodujących różnicę, spróbuj zmienić poziom zgodności bazy danych lub zmienić ustawienia bazy danych, takie jak starsze szacowanie kardynalności, i ponownie uruchom test. Zapoznaj się z zaleceniami dostarczonymi przez wystąpienie zarządzane lub widoki magazynu zapytań, aby zidentyfikować zapytania z regresją wydajności.

Usługa SQL Managed Instance ma wbudowaną funkcję automatycznej korekty planu, która jest domyślnie włączona. Ta funkcja zapewnia, że zapytania, które działały dobrze w przeszłości, nie obniżają wydajności w przyszłości. Jeśli ta funkcja nie jest włączona, uruchom obciążenie ze starymi ustawieniami, aby usługa SQL Managed Instance mogła poznać punkt odniesienia wydajności. Następnie włącz tę funkcję i ponownie uruchom obciążenie przy użyciu nowych ustawień.

Wprowadź zmiany w parametrach testu lub uaktualnienia do wyższych warstw usług, aby osiągnąć optymalną konfigurację wydajności obciążenia, która odpowiada Twoim potrzebom.

Monitorowanie wydajności

Usługa SQL Managed Instance udostępnia zaawansowane narzędzia do monitorowania i rozwiązywania problemów. Należy ich używać do monitorowania wydajności wystąpienia. Oto niektóre kluczowe metryki do monitorowania:

  • Użycie procesora CPU w wystąpieniu w celu określenia, czy aprowizowana liczba rdzeni wirtualnych jest odpowiednia dla obciążenia.
  • Oczekiwana długość życia strony w wystąpieniu zarządzanym w celu określenia, czy potrzebujesz dodatkowej pamięci.
  • Statystyki, takie jak INSTANCE_LOG_GOVERNOR lub PAGEIOLATCH, które identyfikują problemy z we/wy magazynu, zwłaszcza w warstwie Ogólnego przeznaczenia, gdzie może być konieczne wstępne przydzielenie plików w celu uzyskania lepszej wydajności operacji we/wy.

Zagadnienia do rozważenia

Podczas porównywania wydajności należy wziąć pod uwagę następujące kwestie:

  • Ustawienia są zgodne między elementem źródłowym i docelowym. Sprawdź, czy różne wystąpienia, baza danych i tempdb ustawienia są równoważne między dwoma środowiskami. Różnice w konfiguracji, poziomach zgodności, ustawieniach szyfrowania, flagach śledzenia itp., mogą wszystkie niesymetryczne wydajność.

  • Magazyn jest skonfigurowany zgodnie z najlepszymi rozwiązaniami. Na przykład w przypadku warstwy Ogólnego przeznaczenia może być konieczne wstępne przydzielenie rozmiaru plików w celu zwiększenia wydajności.

  • Istnieją kluczowe różnice w środowisku, które mogą powodować różnice wydajności między wystąpieniem zarządzanym a programem SQL Server. Zidentyfikuj czynniki ryzyka związane ze środowiskiem, które mogą przyczynić się do wystąpienia problemu z wydajnością.

  • Magazyn zapytań i automatyczne dostrajanie powinny być włączone w wystąpieniu zarządzanym SQL, ponieważ ułatwiają one mierzenie wydajności obciążenia i automatyczne eliminowanie potencjalnych problemów z wydajnością.

Następne kroki

Aby uzyskać więcej informacji na temat optymalizacji nowego środowiska usługi Azure SQL Managed Instance, zobacz następujące zasoby: