Udostępnij za pośrednictwem


Ocena najlepszych rozwiązań SQL dla programu SQL Server na maszynach wirtualnych platformy Azure

Dotyczy: program SQL Server na maszynie wirtualnej platformy Azure

Funkcja oceny najlepszych rozwiązań SQL w witrynie Azure Portal identyfikuje możliwe problemy z wydajnością i ocenia, że program SQL Server na maszynach wirtualnych platformy Azure jest skonfigurowany do stosowania najlepszych rozwiązań przy użyciu zaawansowanego zestawu reguł dostarczonego przez interfejs API oceny SQL.

Aby dowiedzieć się więcej, obejrzyj ten film wideo na temat oceny najlepszych rozwiązań SQL:

Omówienie

Po włączeniu funkcji oceny najlepszych rozwiązań SQL twoje wystąpienie i bazy danych programu SQL Server są skanowane w celu udostępnienia zaleceń dotyczących elementów, takich jak indeksy, przestarzałe funkcje, włączone lub brakujące flagi śledzenia, statystyki itp. Zalecenia są udostępniane na stronie zarządzania maszynami wirtualnymi SQL w witrynie Azure Portal.

Wyniki oceny są przekazywane do obszaru roboczego usługi Log Analytics przy użyciu agenta usługi Azure Monitor (AMA). Rozszerzenie AMA jest zainstalowane na maszynie wirtualnej z programem SQL Server, jeśli nie jest jeszcze zainstalowane, a zasoby usługi AMA, takie jak DCE, DCR są tworzone i połączone z określonym obszarem roboczym usługi Log Analytics.

Czas wykonywania oceny zależy od środowiska (liczby baz danych, obiektów itd.) z czasem trwania od kilku minut do godziny. Podobnie rozmiar wyniku oceny zależy również od środowiska. Ocena jest uruchamiana względem wystąpienia i wszystkich baz danych w tym wystąpieniu. W naszym teście zaobserwowaliśmy, że przebieg oceny może mieć do 5–10% wpływu procesora NA maszynę. W tych testach przeprowadzono ocenę, gdy aplikacja podobna do TPC-C była uruchomiona względem programu SQL Server.

Wymagania wstępne

Aby korzystać z funkcji oceny najlepszych rozwiązań SQL, musisz mieć następujące wymagania wstępne:

  • Maszyna wirtualna z programem SQL Server musi być zarejestrowana w rozszerzeniu IaaS programu SQL Server.
  • Obszar roboczy usługi Log Analytics w tej samej subskrypcji co maszyna wirtualna z programem SQL Server w celu przekazania wyników oceny.
  • SQL Server 2012 lub nowszy.

Uprawnienia

Aby włączyć oceny najlepszych rozwiązań SQL, potrzebne są następujące uprawnienia:

  • Współautor maszyny wirtualnej w bazowym zasobie maszyny wirtualnej.
  • Współautor maszyny wirtualnej w zasobie maszyn wirtualnych SQL.
  • Współautor usługi Log Analytics w grupie zasobów, która zawiera obszar roboczy usługi Log Analytics.
  • Czytelnik w grupie zasobów, w której są tworzone zasoby agenta usługi Azure Monitor. Sprawdź opcję konfiguracji dla grupy zasobów po włączeniu funkcji oceny najlepszych rozwiązań SQL.

Włącz

Oceny najlepszych rozwiązań SQL można włączyć przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Aby włączyć oceny najlepszych rozwiązań SQL przy użyciu witryny Azure Portal, wykonaj następujące kroki:

  1. Zaloguj się do witryny Azure Portal i przejdź do zasobu maszyn wirtualnych SQL.
  2. Wybierz pozycję Oceny najlepszych rozwiązań SQL w obszarze Ustawienia.
  3. Wybierz pozycję Włącz oceny najlepszych rozwiązań SQL lub Konfigurację, aby przejść do strony Konfiguracja.
  4. Zaznacz pole Włącz oceny najlepszych rozwiązań SQL i podaj następujące informacje:
    1. Obszar roboczy usługi Log Analytics, do którego zostaną przekazane oceny. Wybierz istniejący obszar roboczy w subskrypcji z listy rozwijanej.
    2. Wybierz grupę zasobów, w której zostaną utworzone zasoby agenta usługi Azure Monitor DCE i DCR . Jeśli określisz tę samą grupę zasobów na wielu maszynach wirtualnych programu SQL Server, te zasoby zostaną ponownie użyte.
    3. Harmonogram uruchamiania. Możesz uruchomić oceny na żądanie lub automatycznie zgodnie z harmonogramem. Jeśli wybierzesz harmonogram, podaj częstotliwość (co tydzień lub co miesiąc), dzień tygodnia, cykl (co 1–6 tygodni) oraz godzinę rozpoczęcia ocen (od lokalnego do czasu maszyny wirtualnej).
  5. Wybierz pozycję Zastosuj , aby zapisać zmiany i wdrożyć agenta usługi Azure Monitor na maszynie wirtualnej z programem SQL Server, jeśli nie został jeszcze wdrożony. Powiadomienie w witrynie Azure Portal informuje o tym, że funkcja oceny najlepszych rozwiązań SQL jest gotowa dla maszyny wirtualnej z programem SQL Server.

Ocena maszyny wirtualnej z programem SQL Server

Przebieg oceny:

  • Zgodnie z harmonogramem
  • Na żądanie

Uruchamianie zaplanowanej oceny

Ocenę można skonfigurować zgodnie z harmonogramem przy użyciu witryny Azure Portal i interfejsu wiersza polecenia platformy Azure.

Jeśli ustawisz harmonogram w okienku konfiguracji, ocena zostanie uruchomiona automatycznie o określonej dacie i godzinie. Wybierz pozycję Konfiguracja , aby zmodyfikować harmonogram oceny. Po podaniu nowego harmonogramu poprzedni harmonogram zostanie zastąpiony.

Uruchamianie oceny na żądanie

Po włączeniu funkcji oceny najlepszych rozwiązań SQL dla maszyny wirtualnej z programem SQL Server można uruchomić ocenę na żądanie przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Aby uruchomić ocenę na żądanie przy użyciu witryny Azure Portal, wybierz pozycję Uruchom ocenę w okienku oceny najlepszych rozwiązań SQL na stronie zasobów maszyn wirtualnych SQL w witrynie Azure Portal.

Wyświetlanie wyników

Sekcja Wyniki oceny na stronie oceny najlepszych rozwiązań SQL zawiera listę najnowszych przebiegów oceny. Każdy wiersz wyświetla godzinę rozpoczęcia przebiegu i stan — zaplanowane, uruchomione, przekazując wyniki, ukończone lub zakończone. Każde uruchomienie oceny ma dwie części: ocenia wystąpienie i przekazuje wyniki do obszaru roboczego usługi Log Analytics. Pole stanu obejmuje obie części. Wyniki oceny są wyświetlane w skoroszytach platformy Azure.

Uzyskaj dostęp do wyników oceny skoroszytu platformy Azure na trzy sposoby:

  • Wybierz przycisk Wyświetl najnowszą pomyślną ocenę na stronie Oceny najlepszych rozwiązań SQL.
  • Wybierz ukończone uruchomienie w sekcji Wyniki oceny na stronie Oceny najlepszych rozwiązań SQL.
  • Wybierz pozycję Wyświetl wyniki oceny z pierwszych 10 zaleceń wyświetlanych na stronie Przegląd zasobu maszyny wirtualnej SQL.

Po otwarciu skoroszytu możesz użyć listy rozwijanej, aby wybrać poprzednie uruchomienia. Wyniki jednego przebiegu można wyświetlić przy użyciu strony Wyniki lub przejrzeć trendy historyczne przy użyciu strony Trendy .

Strona z wynikami

Strona Wyniki organizuje rekomendacje przy użyciu kart dla:

  • Wszystkie: wszystkie zalecenia z bieżącego przebiegu
  • Nowe: Nowe zalecenia (różnica z poprzednich przebiegów)
  • Rozwiązano: Rozwiązano zalecenia z poprzednich przebiegów
  • Szczegółowe informacje: identyfikuje najbardziej cykliczne problemy i bazy danych z największymi problemami.

Ocena grup grafów powoduje różne kategorie ważności — wysoka, średnia, niska i informacje. Wybierz każdą kategorię, aby wyświetlić listę zaleceń lub wyszukać frazy kluczowe w polu wyszukiwania. Najlepiej zacząć od najpoważniejszych zaleceń i przejść na dół listy.

Pierwsza siatka przedstawia każde zalecenie i liczbę wystąpień w środowisku, które napotkały ten problem. Po wybraniu wiersza w pierwszej siatce druga siatka wyświetla listę wszystkich wystąpień dla danego zalecenia. Jeśli w pierwszej siatce nie ma zaznaczenia, druga siatka pokazuje wszystkie zalecenia, które potencjalnie mogą być długą listą. Możesz użyć list rozwijanych powyżej siatki (Nazwa, Ważność, Tagi, Sprawdź identyfikator), aby filtrować wyniki. Możesz również użyć opcji Eksportuj do programu Excel i Otwórz ostatnie uruchomienie zapytania w opcjach widoku Dzienniki, wybierając małe ikony w prawym górnym rogu każdej siatki.

Przekazana sekcja grafu identyfikuje zalecenia, które system już obserwuje.

Wyświetl szczegółowe informacje dla każdej rekomendacji, wybierając pole Komunikat , takie jak długi opis i odpowiednie zasoby online.

Na stronie Trendy znajdują się trzy wykresy pokazujące zmiany w czasie: wszystkie problemy, nowe problemy i rozwiązane problemy. Wykresy ułatwiają wyświetlanie postępu. Najlepiej, aby liczba zaleceń spadła, podczas gdy liczba rozwiązanych problemów wzrasta. Legenda przedstawia średnią liczbę problemów dla każdego poziomu ważności. Umieść kursor na słupkach, aby zobaczyć poszczególne wartości dla każdego przebiegu.

Jeśli w ciągu jednego dnia istnieje wiele uruchomień, na stronie Trendy znajduje się tylko najnowszy przebieg.

Włącz dla wszystkich maszyn wirtualnych w subskrypcji

Interfejs wiersza polecenia platformy Azure umożliwia włączenie funkcji oceny najlepszych rozwiązań SQL na wszystkich maszynach wirtualnych z programem SQL Server w ramach subskrypcji. W tym celu użyj następującego przykładowego skryptu:

# This script is formatted for use with Az CLI on Windows PowerShell. You may need to update the script for use with Az CLI on other shells.
# This script enables SQL best practices assessment feature for all SQL Servers on Azure VMs in a given subscription. It configures the VMs to use a Log Analytics workspace to upload assessment results. It sets a schedule to start an assessment run every Sunday at 11pm (local VM time).
# Please note that if a VM is already associated with another Log Analytics workspace, it will give an error.
 
$subscriptionId = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX'
# Resource Group where the Log Analytics workspace belongs
$myWsRg = 'myWsRg'
# Log Analytics workspace where assessment results will be stored
$myWsName = 'myWsName'
# Resource Group where the Azure Monitor Agent resources will be created
$myAgentRg = 'myAgentRg'
 
# Ensure in correct subscription
az account set --subscription $subscriptionId
 
$sqlvms = az sql vm list | ConvertFrom-Json 
 
foreach ($sqlvm in $sqlvms)
{
  echo "Configuring feature on $($sqlvm.id)"
  az sql vm update --assessment-weekly-interval 1 --assessment-day-of-week Sunday --assessment-start-time-local "23:00" --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name
  
  # Alternatively you can use this command to only enable the feature without setting a schedule
  # az sql vm update --enable-assessment true --workspace-name $myWsName --workspace-rg $myWsRg -g $sqlvm.resourceGroup --agent-rg $myAgentRg -n $sqlvm.name  
 
  # You can use this command to start an on-demand assessment on each VM
  # az sql vm start-assessment -g $sqlvm.resourceGroup -n $sqlvm.name
}

Znane problemy

Podczas korzystania z ocen najlepszych rozwiązań SQL mogą wystąpić niektóre z następujących znanych problemów.

Migrowanie do agenta usługi Azure Monitor (AMA)

Wcześniej funkcja oceny najlepszych rozwiązań SQL używała programu Microsoft Monitoring Agent (MMA) do przekazywania ocen do obszaru roboczego usługi Log Analytics. Program Microsoft Monitoring Agent został zastąpiony agentem usługi Azure Monitor (AMA). Aby przeprowadzić migrację istniejących ocen najlepszych rozwiązań SQL z programu MMA do usługi AMA, należy usunąć maszynę wirtualną z programem SQL Server, a następnie ponownie zarejestrować maszynę wirtualną z programem SQL Server przy użyciu rozszerzenia. Istniejące wyniki będą nadal dostępne po włączeniu ocen. Jeśli mma nie jest używana przez inne usługi, możesz go usunąć. Przed migracją upewnij się, że usługa Azure Monitor Log Analytics jest obsługiwana w regionie , w którym wdrożono maszynę wirtualną z programem SQL Server.

Nie można włączyć ocen

Zapoznaj się z historią wdrożenia grupy zasobów zawierającej maszynę wirtualną SQL, aby wyświetlić komunikat o błędzie powiązany z akcją zakończoną niepowodzeniem.

Nie można uruchomić oceny

Sprawdź stan przebiegu oceny w witrynie Azure Portal. Jeśli stan nie powiedzie się, wybierz stan, aby wyświetlić komunikat o błędzie. Możesz również zalogować się do maszyny wirtualnej i przejrzeć szczegółowe komunikaty o błędach dla ocen zakończonych niepowodzeniem w dzienniku rozszerzeń pod adresem C:\WindowsAzure\Logs\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent\2.0.X.Y, gdzie 2.0.X.Y jest wersją rozszerzenia.

Jeśli masz problemy z uruchomieniem oceny:

  • Upewnij się, że środowisko spełnia wszystkie wymagania wstępne.
  • Upewnij się, że usługa agenta IaaS SQL jest uruchomiona na maszynie wirtualnej, a rozszerzenie agenta IaaS SQL jest w dobrej kondycji. Jeśli rozszerzenie agenta IaaS SQL jest w złej kondycji, napraw rozszerzenie, aby rozwiązać wszelkie problemy, i uaktualnić je do najnowszej wersji bez przestoju programu SQL Server.
  • Jeśli widzisz błędy logowania dla NT SERVICE\SqlIaaSExtensionQueryprogramu , upewnij się, że konto istnieje w programie SQL Server z uprawnieniem Server permission - CONTROL SERVER .

Przekazywanie wyniku do obszaru roboczego usługi Log Analytics nie powiodło się

Ten błąd wskazuje, że program Microsoft Monitoring Agent (MMA) nie może przekazać wyników w oczekiwanym przedziale czasu.

Jeśli nie można przekazać wyników do obszaru roboczego usługi Log Analytics, spróbuj wykonać następujące czynności:

  • Włącz tożsamość zarządzaną przypisaną przez system dla maszyny wirtualnej, a następnie ponownie włącz funkcję oceny najlepszych rozwiązań.
  • Jeśli problem będzie się powtarzać, spróbuj wykonać następujące czynności:
    • Sprawdź, czy rozszerzenie MMA jest poprawnie aprowidowane. Zapoznaj się z przewodnikiem rozwiązywania problemów z programem MMA dla dzienników niestandardowych.
    • Dodaj regułę ruchu wychodzącego dla portu 443 w zaporze systemu Windows i sieciowej grupie zabezpieczeń.

Błędy związane z nieprawidłową konfiguracją protokołu TLS przy użyciu usługi Log Analytics

Najczęstszy błąd protokołu TLS występuje, gdy rozszerzenie Microsoft Monitoring Agent (MMA) nie może ustanowić uzgadniania SSL podczas nawiązywania połączenia z punktem końcowym usługi Log Analytics, co zwykle występuje, gdy protokół TLS 1.0 jest wymuszany przez rejestr lub obiekt zasad grupy na poziomie systemu operacyjnego, ale nie jest aktualizowany dla platformy .NET Framework. Jeśli w systemie Windows wymuszono protokół TLS 1.0 lub nowszy i wyłączono starsze protokoły SSL, zgodnie z opisem w sekcji Klucze rejestru specyficzne dla kanału Schannel, należy również upewnić się, że program .NET Framework jest skonfigurowany do używania silnej kryptografii.

Nie można zmienić obszaru roboczego usługi Log Analytics po skonfigurowaniu funkcji SQL Assessment

Po skojarzeniu maszyny wirtualnej z obszarem roboczym usługi Log Analytics nie można jej zmienić z poziomu zasobu maszyny wirtualnej serwera SQL. Ma to na celu zapobieganie korzystaniu z usługi Log Analytics w innych przypadkach użycia. Maszynę wirtualną można rozłączyć przy użyciu bloku zasobów usługi Log Analytics na stronie Maszyny wirtualne w witrynie Azure Portal.

Wynik wygasł z powodu przechowywania danych obszaru roboczego usługi Log Analytics

Oznacza to, że wyniki nie są już przechowywane w obszarze roboczym usługi Log Analytics na podstawie zasad przechowywania. Można zmienić okres przechowywania dla obszaru roboczego.