Database Advisor: Empfehlungen zur Leistung für Azure SQL-Datenbank

Gilt für:Azure SQL-Datenbank

Azure SQL-Datenbank lernt und passt sich an Ihre Anwendung an. Azure SQL-Datenbank verfügt über einige Database Advisors (Datenbankratgeber), von denen angepasste Empfehlungen zur Steigerung der Leistung bereitgestellt werden. Diese Database Advisors führen eine ständige Bewertung und Analyse des Nutzungsverlaufs durch und stellen Empfehlungen basierend auf den Workloadmustern bereit, mit denen die Leistung verbessert werden kann.

Leistungsübersicht

Die Leistungsübersicht im Azure-Portal enthält eine Zusammenfassung zur Leistung der Datenbank und unterstützt Sie bei der Leistungsoptimierung und Fehlerbehebung.

  • Falls vorhanden, enthält die Kachel Empfehlungen eine Aufschlüsselung der Optimierungsempfehlungen für Ihre Datenbank. Durch Auswahl dieser Kachel gelangen Sie zu den Optionen für Leistungsempfehlungen.
  • Die Kachel Optimierungsaktivität bietet eine Zusammenfassung der laufenden und abgeschlossenen Optimierungsaktionen für die Datenbank, sodass Sie einen schnellen Überblick über den Verlauf der Optimierungsaktivitäten erhalten. Wenn Sie diese Kachel auswählen, gelangen Sie zu den Empfehlungen und zum Optimierungsverlauf für Ihre Datenbank. Weitere Informationen finden Sie unter Automatische Optimierung.
  • Die Kachel Automatische Optimierung zeigt die Konfiguration der automatischen Optimierung für Ihre Datenbank an (die Optimierungsaktionen, die automatisch auf die Datenbank angewendet werden). Durch Auswählen dieser Kachel öffnen Sie das Dialogfeld zur Automatisierungskonfiguration. Weitere Informationen zur automatischen Optimierung von Datenbankindizes und Abfrageausführungsplänen finden Sie unter Automatische Optimierung.
  • Die Kachel Datenbankabfragen zeigt die Zusammenfassung der Abfrageleistung für Ihre Datenbank (DTU-Nutzung insgesamt und die Abfragen mit dem größten Ressourcenverbrauch). Durch Auswählen dieser Kachel gelangen Sie zur Statistik zur Abfrageleistung.
  • Das Standarddiagramm bietet eine Zusammenfassung der letzten 24 Stunden der Datenbankaktivität mit Optionen zum Zoomen neuerer Aktivitäten. Gestapelte Balkendiagramme analysieren die wichtigsten Abfragen nach CPU, und ein mehrzeiliges Diagramm stellt die Workload nach CPU, Daten-E/A und Protokoll-E/A dar. Wählen Sie einzelne gestapelte Balken im Diagramm aus, die jeweils einen zwischengespeicherten Abfrageplan darstellen. Navigieren Sie zur Seite Query Performance Insight, und ermitteln Sie die teuersten Abfragen in Ihrer Workload. Weitere Informationen finden Sie unter Query Performance Insight.

Navigieren Sie zur Seite Leistungsübersicht unter Intelligente Leistung im Azure-Portalnavigationsmenü für Ihre Azure SQL-Datenbank.

Screenshot from the Azure portal of the Performance Overview for Azure SQL Database.

Optionen für Leistungsempfehlungen

Folgende Optionen für Leistungsempfehlungen sind in Azure SQL-Datenbank verfügbar:

Leistungsempfehlung Unterstützung für Einzel- und Pooldatenbanken Unterstützung der Instanzdatenbank
Empfehlungen zum Erstellen eines Index: Empfiehlt das Erstellen von Indizes, durch die sich die Leistung Ihrer Workload verbessern kann. Ja Nein
Empfehlungen zum Löschen eines Index: Empfiehlt das tägliche Entfernen redundanter und doppelter Indizes (mit Ausnahme von eindeutigen Indizes) sowie Indizes, die über einen langen Zeitraum hinweg (>90 Tage) nicht verwendet wurden. Beachten Sie, dass diese Option nicht mit Anwendungen kompatibel ist, die Partitionswechsel und Indexhinweise verwenden. Das Löschen nicht verwendeter Indizes wird bei den Dienstebenen „Premium“ und „Unternehmenskritisch“ nicht unterstützt. Ja Nein
Empfehlungen zum Parametrisieren von Abfragen (Vorschau) : Empfiehlt die erzwungene Parametrisierung in Fällen, in denen eine oder mehrere Abfragen ständig neu kompiliert werden, aber am Ende immer der gleiche Abfrageausführungsplan daraus hervorgeht. Ja Nein
Empfehlungen zum Beheben von Schemaproblemen (Vorschau) : Empfehlungen für die Schemakorrektur werden angezeigt, wenn Azure SQL-Datenbank eine Anomalie in der Anzahl von schemabezogenen SQL-Fehlern erkennt, die in Ihrer Datenbank auftreten. Empfehlungen zum Beheben von Schemaproblemen werden in Kürze von Microsoft eingestellt. Ja Nein

A screenshot from the Azure portal showing sample performance recommendations for Azure SQL Database.

Informationen zum Anwenden der Leistungsempfehlungen finden Sie unter Anwenden von Empfehlungen. Informationen zum Anzeigen des Status von Empfehlungen finden Sie unter Überwachen von Vorgängen.

Sie können auch den vollständigen Verlauf der Aktionen zur Leistungsoptimierung suchen, die in der Vergangenheit angewendet wurden.

Empfehlungen zum Erstellen eines Index

Azure SQL-Datenbank überwacht kontinuierlich die ausgeführten Abfragen und erkennt die Indizes, die die Leistung verbessern könnten. Sobald genügend Vertrauen besteht, dass ein bestimmter Index fehlt, wird eine neue Empfehlung Index erstellen erstellt.

Azure SQL-Datenbank baut Vertrauen auf, indem berechnet wird, zu welchem Leistungsgewinn der Index mit der Zeit führen würde. Je nach geschätztem Leistungsgewinn werden Empfehlungen als „Hoch“, „Mittel“ oder „Niedrig“ eingestuft.

Indizes, die mit Empfehlungen erstellt wurden, sind immer als automatisch erstellte Indizes gekennzeichnet. Sie können in der Ansicht „sys.indexes“ anzeigen, welche Indizes automatisch erstellt wurden. Automatisch erstellte Indizes blockieren keine ALTER/RENAME-Befehle.

Wenn Sie versuchen, die Spalte mit einem automatisch erstellten Index zu löschen, wird der Befehl übergeben. Der automatisch erstellte Index wird ebenfalls mit dem Befehl gelöscht. Reguläre Indizes blockieren den Befehl ALTER/RENAME für Spalten, die indiziert sind.

Nachdem die Empfehlung zum Erstellen eines Indexes angewendet wurde, vergleicht Azure SQL-Datenbank die Leistung der Abfragen mit der Baselineleistung. Wenn der neue Index die Leistung verbessert, wird die Empfehlung als erfolgreich gekennzeichnet, und der Auswirkungsbericht steht zur Verfügung. Wenn der Index nicht zu einer Leistungsverbesserung geführt hat, wird er automatisch rückgängig gemacht. Azure SQL-Datenbank verwendet diesen Prozess, um sicherzustellen, dass Empfehlungen die Leistung der Datenbank verbessern.

Jede Empfehlung Index erstellen verfügt über eine Backoffrichtlinie, die verhindert, dass die Empfehlung bei einem hohen Ressourcenverbrauch einer Datenbank oder eines Pools angewendet wird. In der Backoffrichtlinie werden CPU, Daten-E/A, Protokoll-E/A und verfügbarer Speicher berücksichtigt.

Wenn CPU, Daten-E/A oder Protokoll-E/A während der letzten 30 Minuten über 80 % gelegen haben, wird die Empfehlung zum Erstellen eines Indexes aufgeschoben. Wenn der verfügbare Speicher nach der Indexerstellung unter 10 % liegt, geht die Empfehlung in den Status „Fehler“ über. Falls nach einigen Tagen die automatische Optimierung weiterhin davon ausgeht, dass dieser Index von Vorteil wäre, wird der Prozess erneut gestartet.

Dieser Prozess wird wiederholt, bis genügend freier Speicherplatz zum Erstellen eines Indexes verfügbar ist oder der Index nicht mehr als vorteilhaft betrachtet wird.

Empfehlungen zum Löschen eines Indexes

Zusätzlich zum Erkennen fehlender Indizes analysiert Azure SQL-Datenbank kontinuierlich die Leistung der vorhandenen Indizes. Wenn der Index nicht verwendet wird, empfiehlt die Azure SQL-Datenbank seine Löschung. Das Löschen eines Indexes wird in zwei Fällen empfohlen:

  • Der Index ist ein Duplikat eines anderes Indexes (gleiche indizierte und enthaltene Spalte, gleiches Partitionsschema und gleiche Filter).
  • Der Index wurde für einen längeren Zeitraum (>90 Tage) nicht verwendet.

„Index löschen“-Empfehlungen durchlaufen auch die Überprüfung nach der Implementierung. Wenn die Leistung verbessert wird, ist ein Auswirkungsbericht verfügbar. Wenn die Leistung beeinträchtigt wird, wird die Empfehlung zurückgesetzt.

Empfehlungen zum Parametrisieren von Abfragen (Vorschau)

Empfehlungen zum Parametrisieren von Abfragen werden angezeigt, wenn eine oder mehrere Abfragen ständig neu kompiliert werden, aber am Ende immer derselbe Abfrageausführungsplan daraus hervorgeht. Diese Bedingung eröffnet die Möglichkeit, erzwungene Parametrisierung anzuwenden. Durch die erzwungene Parametrisierung können Abfragepläne in Zukunft zwischengespeichert und wiederverwendet werden. Dies verbessert die Leistung und verringert den Ressourcenverbrauch.

Jede Abfrage muss zunächst kompiliert werden, um einen Ausführungsplan zu erstellen. Jeder generierte Plan wird dem Plancache hinzugefügt. Nachfolgende Ausführungen derselben Abfrage können dieser Plan aus dem Cache wiederverwenden. Auf diese Weise wird eine erneute Kompilierung überflüssig.

Abfragen mit nicht parametrisierten Werten können zu Mehrkosten bei der Leistung führen, da der Ausführungsplan jedes Mal neu kompiliert wird, wenn die nicht parametrisierten Werte unterschiedlich sind. In vielen Fällen werden für die gleichen Abfragen mit unterschiedlichen Parameterwerten die gleichen Ausführungspläne generiert. Diese Pläne werden dem Plancache jedoch separat hinzugefügt.

Der Vorgang der Neukompilierung von Ausführungsplänen verbraucht Datenbankressourcen, erhöht die Abfragedauer und führt zu einem Überlauf des Plancaches. Diese Ereignisse bewirken ihrerseits, dass Pläne aus dem Cache entfernt werden. Sie können das entsprechende Verhalten ändern, indem Sie für die Datenbank die Option für erzwungene Parametrisierung festlegen.

Damit Sie die Auswirkungen dieser Empfehlung besser abschätzen können, wird ein Vergleich zwischen der tatsächlichen CPU-Auslastung und der prognostizierten CPU-Auslastung nach Anwendung der Empfehlung bereitgestellt. Diese Empfehlung kann Sie dabei unterstützen, CPU-Einsparungen zu erzielen. Sie kann Ihnen auch helfen, die Abfragedauer und den Mehraufwand für den Plancache zu verringern. Dies bedeutet, dass eine größere Anzahl der Pläne im Cache verbleiben und wiederverwendet werden kann. Sie können diese Empfehlung schnell umsetzen, indem Sie den Befehl Anwenden auswählen.

Nachdem Sie diese Empfehlung angewendet haben, wird innerhalb von Minuten erzwungenen Parametrisierung für Ihre Datenbank aktiviert. Sie startet den Überwachungsvorgang, der ungefähr 24 Stunden andauert. Nach Ablauf dieses Zeitraums können Sie den Überprüfungsbericht anzeigen. Dieser Bericht zeigt die CPU-Auslastung Ihrer Datenbank 24 Stunden bevor und nachdem die Empfehlung angewendet wurde. Der Azure SQL Database Advisor verfügt über einen Sicherheitsmechanismus, der die angewendete Empfehlung automatisch wieder zurücknimmt, falls ein Absinken der Leistung erkannt wird.

Empfehlungen zum Beheben von Schemaproblemen (Vorschau)

Wichtig

Empfehlungen zum Beheben von Schemaproblemen werden in Kürze von Microsoft eingestellt. Wir empfehlen die Verwendung von Intelligent Insights zum Überwachen Ihrer Datenbankleistungsprobleme, einschließlich der Schemaprobleme, die zuvor durch die Empfehlungen zum Beheben von Schemaproblemen abgedeckt wurden.

Empfehlungen zum Beheben von Schemaproblemen werden angezeigt, wenn Azure SQL-Datenbank eine Anomalie bei der Anzahl von schemabezogenen SQL-Fehlern erkennt, die in Ihrer Datenbank auftreten. Diese Empfehlung wird in der Regel angezeigt, wenn in Ihrer Datenbank innerhalb einer Stunde mehrere schemabezogene Fehler auftreten (ungültiger Spaltenname, ungültiger Objektname usw.).

„Schemaprobleme“ sind eine Klasse von Syntaxfehlern. Sie treten auf, wenn die Definition der SQL-Abfrage und die Definition des Datenbankschemas nicht übereinstimmen. Dies kann z. B. der Fall sein, wenn eine der von der Abfrage erwarteten Spalten in der Zieltabelle fehlt oder umgekehrt.

Die Empfehlung zum „Beheben von Schemaproblemen“ wird angezeigt, wenn Azure SQL-Datenbank eine Anomalie bei der Anzahl von schemabezogenen SQL-Fehlern erkennt, die in Ihrer Datenbank auftreten. Die folgende Tabelle zeigt die möglichen Fehler in Bezug auf Schemaprobleme:

SQL-Fehlercode `Message`
201 Die' '-Prozedur oder -Funktion erwartet den ' '-Parameter, der nicht bereitgestellt wurde.
207 Ungültiger Spaltenname '*'.
208 Ungültiger Objektname '*'.
213 Der Spaltenname oder die Anzahl der bereitgestellten Werte entspricht nicht der Tabellendefinition.
2812 Die gespeicherte Prozedur '*' wurde nicht gefunden.
8144 Für die '*'-Prozedur oder -Funktion wurden zu viele Argumente angegeben.

Benutzerdefinierte Anwendungen

Entwickler sollten in Betracht ziehen, benutzerdefinierte Anwendungen unter Verwendung von Leistungsempfehlungen für Azure SQL-Datenbank zu entwickeln. Auf alle im Portal aufgeführten Empfehlungen für eine Datenbank kann über die Get-AzSqlDatabaseRecommendedAction-API zugegriffen werden.

Nächste Schritte

  • Weitere Informationen zur automatischen Optimierung von Datenbankindizes und Abfrageausführungsplänen finden Sie unter Automatische Optimierung der Azure SQL-Datenbank.
  • Weitere Informationen zum automatischen Überwachen der Datenbankleistung mit der automatisierten Diagnose und der Ursachenanalyse von Leistungsproblemen finden Sie unter Azure SQL Intelligent Insights.
  • Unter Query Performance Insight erfahren Sie, wie Sie die Auswirkungen Ihrer wichtigsten Abfragen auf die Leistung anzeigen und untersuchen können.