Freigeben über


SQL-Bewertung für bewährte Methoden für SQL Server auf Azure-VMs

Gilt für: SQL Server auf Azure-VMs

Die SQL-Bewertungsfunktion für bewährte Methoden im Azure-Portal dient zur Identifizierung möglicher Leistungsprobleme und dazu, zu bewerten, ob Ihre SQL Server-Instanz für Azure Virtual Machines (VMs) so konfiguriert ist, dass bewährte Methoden befolgt werden. Dabei wird der umfangreiche Regelsatz verwendet, der von der SQL-Bewertungs-API bereitgestellt wird.

Weitere Informationen finden Sie in diesem Video zur SQL-Bewertung für bewährte Methoden:

Übersicht

Sobald die SQL-Bewertungsfunktion für bewährte Methoden aktiviert ist, werden Ihre SQL Server-Instanz und SQL-Datenbanken gescannt, um Empfehlungen zu Indizes, veralteten Funktionen, aktivierten oder fehlenden Ablaufverfolgungsflags, Statistiken usw. bereitzustellen. Die Empfehlungen werden auf der SQL VM-Verwaltungsseite des Azure-Portals angezeigt.

Bewertungsergebnisse werden mithilfe von Azure Monitor Agent (AMA) in Ihren Log Analytics-Arbeitsbereich hochgeladen. Die AMA-Erweiterung wird auf der SQL Server-VM installiert, sofern sie noch nicht installiert ist, und AMA-Ressourcen wie DCE und DCR werden erstellt und mit dem angegebenen Log Analytics-Arbeitsbereich verbunden.

Die Ausführungszeit der Bewertung hängt von Ihrer Umgebung ab (Anzahl der Datenbanken, Objekte usw.) und kann von einigen Minuten bis zu einer Stunde dauern. Die Größe des Bewertungsergebnisses hängt ebenfalls von Ihrer Umgebung ab. Die Bewertung wird für Ihre Instanz und alle Datenbanken auf dieser Instanz ausgeführt. Bei unseren Tests haben wir festgestellt, dass eine Bewertungsausführung 5 bis 10 % der CPU des Computers in Anspruch nehmen kann. Bei diesen Tests erfolgte die Bewertung, während eine TPC-C-ähnliche Anwendung für SQL Server ausgeführt wurde.

Voraussetzungen

Um diese SQL-Bewertungsfunktion für bewährte Methoden verwenden zu können, müssen die folgenden Voraussetzungen erfüllt sein:

Berechtigungen

Um SQL-Best-Practices-Bewertungen zu aktivieren, benötigen Sie die folgenden Berechtigungen:

  • Mitwirkender virtueller Computer auf der zugrunde liegenden Ressource des virtuellen Computers.
  • Mitwirkender virtueller Computer an der Ressource der virtuellen SQL-Computer.
  • Protokollanalyse-Mitwirkender in der Ressourcengruppe aus, die den Log Analytics-Arbeitsbereich enthält.
  • Leser in der Ressourcengruppe, in der die Azure Monitor-Agent-Ressourcen erstellt werden. Überprüfen Sie die Konfigurationsoption für die Ressourcengruppe, wenn Sie das SQL-Best-Practices-Bewertung-Feature aktivieren.

Aktivieren

Sie können SQL-Best-Practices-Bewertungen mithilfe des Azure-Portals oder der Azure CLI aktivieren.

Um SQL-Best-Practices-Bewertungen mithilfe des Azure-Portals zu aktivieren, führen Sie die folgenden Schritte aus:

  1. Melden Sie sich im Azure-Portal an und gehen Sie zu Ihrer Ressource für virtuelle SQL-Computer.
  2. Wählen Sie unter Einstellungen die Option SQL-Bewertungen für bewährte Methoden aus.
  3. Wählen Sie SQL-Bewertungen für bewährte Methoden aktivieren oder Konfiguration aus, um zur Seite Konfiguration zu navigieren.
  4. Aktivieren Sie das Kontrollkästchen SQL-Bewertungen für bewährte Methoden aktivieren, und geben Sie Folgendes an:
    1. Den Log Analytics-Arbeitsbereich, in den Bewertungen hochgeladen werden. Wählen Sie in der Dropdownliste einen vorhandenen Arbeitsbereich des Abonnements aus.
    2. Wählen Sie die Ressourcengruppe aus, in der die Azure Monitor Agent-Ressourcen DCE und DCR erstellt werden. Wenn Sie dieselbe Ressourcengruppe für mehrere SQL Server-VMs angeben, werden diese Ressourcen wiederverwendet.
    3. Den Zeitplan für die Ausführung. Sie können Bewertungen nach Bedarf oder automatisch gemäß einem Zeitplan ausführen. Wenn Sie einen Zeitplan auswählen, geben Sie die Häufigkeit (wöchentlich oder monatlich), den Wochentag, die Wiederholung (alle 1 bis 6 Wochen) und die Tageszeit an, zu der Ihre Bewertungen gestartet werden sollen (lokal zur VM-Zeit).
  5. Wählen Sie Übernehmen aus, um Ihre Änderungen zu speichern und den Azure Monitor Agent auf Ihrer SQL Server-VM bereitzustellen, sofern er noch nicht bereitgestellt wurde. Eine Benachrichtigung des Azure-Portals informiert Sie, sobald das Feature SQL-Best-Practices-Bewertung für Ihre SQL Server-VM bereit ist.

Bewerten der SQL Server-VM

Die Ausführung von Bewertungen erfolgt:

  • Nach einem Zeitplan
  • On-Demand-Streaming

Ausführen einer geplanten Bewertung

Sie können die Bewertung mit einem Zeitplan mithilfe des Azure-Portals und der Azure CLI konfigurieren.

Wenn Sie im Konfigurationsbereich einen Zeitplan festlegen, wird eine Bewertung automatisch zum angegebenen Datum und zur angegebenen Uhrzeit ausgeführt. Wählen Sie Konfiguration aus, um Ihren Bewertungszeitplan zu ändern. Sobald Sie einen neuen Zeitplan bereitstellen, wird der vorherige Zeitplan überschrieben.

Ausführen einer Bewertung bei Bedarf

Nachdem die SQL-Best-Practices-Bewertungsfunktion für Ihre SQL Server-VM aktiviert wurde, ist es möglich, bei Bedarf eine Bewertung mit dem Azure-Portal oder der Azure CLI auszuführen.

Wenn Sie eine On-Demand-Bewertung mithilfe des Azure-Portals ausführen möchten, wählen Sie auf der Ressourcenseite für virtuelle SQL-Computer im Azure-Portal im Bereich SQL-Best-Practice-Bewertung die Option Bewertung ausführen.

Anzeigen der Ergebnisse

Im Abschnitt Bewertungsergebnisse der Seite SQL-Bewertungen für bewährte Methoden wird eine Liste der letzten Bewertungsausführungen angezeigt. In jeder Zeile werden die Startzeit einer Ausführung und der Status (geplant, wird ausgeführt, Ergebnisse werden hochgeladen, abgeschlossen oder Fehler) angezeigt. Jede Bewertungsausführung besteht aus zwei Teilen: Auswerten Ihrer Instanz und Hochladen der Ergebnisse in Ihren Log Analytics-Arbeitsbereich. Das Statusfeld deckt beide Teile ab. Bewertungsergebnisse werden in Azure-Arbeitsmappen angezeigt.

Es gibt drei Möglichkeiten, um auf die Bewertungsergebnisse der Azure-Arbeitsmappe zuzugreifen:

  • Wählen Sie die Schaltfläche Letzte erfolgreiche Bewertung anzeigen auf der Seite SQL-Bewertungen für bewährte Methoden aus.
  • Wählen Sie eine abgeschlossene Ausführung im Abschnitt Bewertungsergebnisse der Seite SQL-Bewertungen für bewährte Methoden aus.
  • Wählen Sie Bewertungsergebnisse anzeigen aus den 10 besten Empfehlungen auf der Seite Übersicht Ihrer SQL-VM-Ressource aus.

Nachdem Sie die Arbeitsmappe geöffnet haben, können Sie die Dropdownliste verwenden, um vorherige Ausführungen auszuwählen. Sie können die Ergebnisse einer einzelnen Ausführung auf der Seite Ergebnisse anzeigen oder historische Trends auf der Seite Trends überprüfen.

Seite „Ergebnisse“

Auf der Seite Ergebnisse sind die Empfehlungen in Registerkarten unterteilt:

  • Alle: Alle Empfehlungen aus der aktuellen Ausführung
  • Neu: Neue Empfehlungen (das Delta aus vorherigen Ausführungen)
  • Aufgelöst: Aufgelöste Empfehlungen aus vorherigen Ausführungen
  • Erkenntnisse: Identifiziert die am häufigsten auftretenden Probleme und die Datenbanken mit den meisten Problemen.

Im Diagramm werden Bewertungsergebnisse in die Schweregrade „hoch“, „mittel“ und „niedrig“ unterteilt und Informationen angezeigt. Wählen Sie jede Kategorie aus, um die Liste der Empfehlungen anzuzeigen, oder suchen Sie im Suchfeld nach Schlüsselbegriffen. Es ist am besten, mit den schwerwiegendsten Empfehlungen zu beginnen und die Liste dann absteigend abzuarbeiten.

Das erste Raster zeigt Ihnen jede Empfehlung und die Anzahl der Instanzen in Ihrer Umgebung, bei denen dieses Problem aufgetreten ist. Wenn Sie eine Zeile im ersten Raster auswählen, werden im zweiten Raster alle Instanzen für diese spezielle Empfehlung aufgelistet. Wenn im ersten Raster keine Auswahl vorhanden ist, zeigt das zweite Raster alle Empfehlungen an, was eine lange Liste sein kann. Sie können die Dropdowns über dem Raster (Name, Schweregrad, Tags, ID überprüfen) verwenden, um die Ergebnisse zu filtern. Sie können auch die Optionen In Excel exportieren und Zuletzt ausgeführte Abfrage in Protokollansicht öffnen verwenden, indem Sie die kleinen Symbole oben rechts im jeweiligen Raster auswählen.

Der Abschnitt bestanden des Diagramms identifiziert Empfehlungen, die Ihr System bereits befolgt.

Zeigen Sie ausführliche Informationen zu jeder Empfehlung an, indem Sie das Feld Meldung auswählen, z. B. eine lange Beschreibung und relevante Onlineressourcen.

Es gibt drei Diagramme auf der Seite Trends, um Änderungen im Laufe der Zeit anzuzeigen: alle Probleme, neue Probleme und behobene Probleme. Die Diagramme helfen Ihnen, Ihren Fortschritt zu erkennen. Im Idealfall sollte die Anzahl der Empfehlungen abnehmen, während die Anzahl der behobenen Probleme ansteigt. Die Legende zeigt die durchschnittliche Anzahl von Problemen für jeden Schweregrad an. Positionieren Sie den Mauszeiger über den Balken, um die einzelnen Werte für jede Ausführung anzuzeigen.

Wenn an einem Tag mehrere Ausführungen erfolgt sind, ist nur die letzte Ausführung in den Diagrammen auf der Seite Trends enthalten.

Aktivieren aller VMs in einem Abonnement

Sie können die Azure CLI verwenden, um die SQL-Best-Practices-Bewertung für alle SQL Server-VMs innerhalb eines Abonnements zu aktivieren. Verwenden Sie dazu das folgende Beispielskript:

# 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
}

Bekannte Probleme

Bei der Verwendung von SQL-Bewertungen für bewährte Methoden können einige der folgenden bekannten Probleme auftreten.

Umstellung auf Azure Monitor Agent (AMA)

Zuvor verwendete die Funktion „SQL-Best-Practices-Bewertung“ Microsoft Monitoring Agent (MMA), um Bewertungen in den Log Analytics-Arbeitsbereich hochzuladen. Der Microsoft Monitoring Agent wurde durch den Azure Monitor-Agent (AMA) ersetzt. Um vorhandene SQL-Best-Practices-Bewertungen von MMA zu AMA zu migrieren, müssen Sie ihre SQL Server-VM löschen und anschließend erneut mit der Erweiterung registrieren. Ihre vorhandenen Ergebnisse sind nach der Aktivierung der Bewertungen weiterhin verfügbar. Wenn das MMA nicht von anderen Diensten verwendet wird, können Sie es entfernen. Stellen Sie vor der Migration sicher, dass Azure Monitor Log Analytics in der Region unterstützt wird, in der sich Ihre SQL Server-VM befindet.

Fehler beim Aktivieren von Bewertungen

Verwenden Sie den Bereitstellungsverlauf der Ressourcengruppe, die die SQL-VM enthält, um die Fehlermeldung im Zusammenhang mit der fehlgeschlagenen Aktion anzuzeigen.

Fehler beim Ausführen einer Bewertung

Überprüfen Sie den Status der Bewertung, die im Azure-Portal ausgeführt wird. Wenn der Status fehlgeschlagen ist, wählen Sie den Status aus, um die Fehlermeldung anzuzeigen. Sie können sich auch bei der VM anmelden und detaillierte Fehlermeldungen für fehlgeschlagene Bewertungen im Erweiterungsprotokoll unter C:\WindowsAzure\Logs\Plugins\Microsoft.SqlServer.Management.SqlIaaSAgent\2.0.X.Y überprüfen, wobei 2.0.X.Y die Version der Erweiterung ist.

Wenn Probleme beim Ausführen einer Bewertung auftreten:

  • Stellen Sie sicher, dass Ihre Umgebung alle Voraussetzungen erfüllt.
  • Stellen Sie sicher, dass der SQL IaaS-Agent-Dienst auf dem virtuellen Computer ausgeführt wird und die SQL IaaS-Agent-Erweiterung in einem fehlerfreien Zustand ist. Wenn die SQL IaaS-Agent-Erweiterung fehlerhaft ist, reparieren Sie die Erweiterung, um Probleme zu beheben und führen Sie ein Upgrade auf die aktuelle Version ohne SQL Server-Downtime durch.
  • Falls für NT SERVICE\SqlIaaSExtensionQuery Anmeldefehler auftreten, stellen Sie sicher, dass das Konto in SQL Server mit der Berechtigung Server permission - CONTROL SERVER existiert.

Fehler beim Hochladen des Ergebnisses in den Log Analytics-Arbeitsbereich

Dieser Fehler deutet darauf hin, dass Microsoft Monitoring Agent (MMA) die Ergebnisse nicht innerhalb des erwarteten Zeitrahmens hochladen konnte.

Wenn Ihre Ergebnisse nicht in den Log Analytics-Arbeitsbereich hochgeladen werden, versuchen Sie Folgendes:

Fehler mit falscher TLS-Konfiguration bei Verwendung von Log Analytics

Der häufigste TLS-Fehler tritt auf, wenn die Microsoft Monitoring Agent (MMA)-Erweiterung beim Herstellen einer Verbindung mit dem Protokollanalyseendpunkt keinen SSL-Handshake herstellen kann, was in der Regel geschieht, wenn TLS 1.0 von der Registrierung oder dem GPO auf Betriebssystemebene erzwungen wird, jedoch nicht für das .NET Framework aktualisiert wird. Wenn Sie unter Windows TLS 1.0 oder eine höhere Version erzwungen und ältere SSL-Protokolle deaktiviert haben, wie unter Schannel-spezifische Registrierungsschlüssel beschrieben, müssen Sie auch sicherstellen, dass .NET Framework für die Verwendung sicherer Kryptografie konfiguriert ist.

Der Log Analytics-Arbeitsbereich kann nach dem Konfigurieren der SQL-Bewertung nicht geändert werden

Nachdem ein virtueller Computer einem Log Analytics-Arbeitsbereich zugeordnet wurde, kann dieser nicht mehr über die SQL-VM-Ressource geändert werden. Dadurch wird die Verwendung von Log Analytics für andere Anwendungsfälle verhindert. Die Verbindung der VM kann über das Blatt Log Analytics-Ressource auf der Seite Virtual Machines im Azure-Portal getrennt werden.

Ergebnis aufgrund der Aufbewahrung von Log Analytics-Arbeitsbereichsdaten abgelaufen

Dies deutet darauf hin, dass die Ergebnisse basierend auf der Aufbewahrungsrichtlinie nicht mehr im Log Analytics-Arbeitsbereich aufbewahrt werden. Sie können den Aufbewahrungszeitraum für den Arbeitsbereich ändern.