Automatische Optimierung bei Azure SQL-Datenbank und Azure SQL Managed Instance
Gilt für: Azure SQL-Datenbank Azure SQL Managed Instance
Die automatische Optimierung von Azure SQL-Datenbank und Azure SQL Managed Instance sorgt dank einer kontinuierlichen Leistungsoptimierung, die auf künstlicher Intelligenz und maschinellem Lernen basiert, für hohe Leistung und stabile Workloads.
Bei der automatischen Optimierung handelt es sich um einen vollständig verwalteten Leistungsdienst mit integrierten intelligenten Funktionen, der kontinuierlich Abfragen für eine Datenbank überwacht und deren Leistung automatisch verbessert. Dies wird durch eine dynamische Anpassung einer Datenbank an die unterschiedlichen Workloads sowie durch die Anwendung von Optimierungsempfehlungen erreicht. Dank künstlicher Intelligenz lernt die automatische Optimierung horizontal von allen Datenbanken in Azure und verbessert dynamisch ihre Optimierungsmaßnahmen. Je länger die automatische Optimierung für eine Datenbank verwendet wird, desto besser ist ihre Leistung.
Die automatische Optimierung von Azure SQL-Datenbank und Azure SQL Managed Instance ist vielleicht eines der wichtigsten Features, die Sie aktivieren können, um stabile Datenbankworkloads mit hoher Leistung bereitzustellen.
Die automatische Optimierung von Azure SQL teilt sich die Kernlogik mit SQL Server für das Feature zur automatischen Optimierung in der Datenbank-Engine. Weitere technische Informationen zum integrierten Intelligenzmechanismus finden Sie unter Automatic tuning (Automatische Optimierung).
Vorteile der automatischen Optimierung
- Automatisierte Optimierung der Leistung von Datenbanken
- Automatisierte Überprüfung von Leistungszuwächsen
- Automatisches Rollback und automatische Korrektur
- Optimierungsverlauf
- Optimieren von T-SQL-Aktionsskripts (Transact-SQL) für manuelle Bereitstellungen
- Funktion für das Aufskalieren von einigen Hunderttausend Datenbanken
- Positive Auswirkung auf DevOps-Ressourcen und die Gesamtkosten
Sicher, zuverlässig und bewährt
Die Leistung anspruchsvoller Workloads wird durch auf Datenbanken angewendete Optimierungsmaßnahmen in keinem Fall beeinträchtigt. Bei der Entwicklung des Systems wurde sehr genau darauf geachtet, dass es zu keinerlei Störung der Benutzerworkloads kommt. Empfehlungen der automatisierten Optimierung werden nur bei geringer Auslastung von CPU, Daten-E/A und Protokoll-E/A angewendet. Zur Wahrung der Workloadleistung kann das System automatische Optimierungsmaßnahmen auch vorübergehend deaktivieren. In diesem Fall wird die Meldung „Vom System deaktiviert“ im Azure-Portal und in der dynamischen Verwaltungssicht sys.database_automatic_tuning_options angezeigt. Die automatische Optimierung ist so konzipiert, dass Benutzerworkloads die höchste Ressourcenpriorität erhalten.
Die Mechanismen für die automatische Optimierung sind ausgereift und wurden auf Grundlage von Millionen von Datenbanken perfektioniert, die in Azure ausgeführt werden. Angewendete automatisierte Optimierungsmaßnahmen werden automatisch überprüft, um sicherzustellen, dass sie sich spürbar positiv auf die Workloadleistung auswirken. Kommt es zu keiner Verbesserung oder im unwahrscheinlichen Fall einer Verschlechterung der Leistung, werden die durch die automatische Optimierung vorgenommenen Änderungen umgehend rückgängig gemacht. Anhand des aufgezeichneten Optimierungsverlaufs wird klar ersichtlich, dass die Leistung jeder einzelnen Datenbank in Azure SQL-Datenbank verbessert wurde.
Aktivieren der automatischen Optimierung
- Azure SQL-Datenbank: Aktivierung der automatischen Optimierung im Azure-Portal oder mit der T-SQL-Anweisung ALTER DATABASE durchführen.
- Azure SQL Managed Instance: Aktivieren Sie die automatische Optimierung mit der T-SQL-Anweisung ALTER DATABASE.
Optionen für die automatische Optimierung
Die Optionen zur automatischen Optimierung in Azure SQL-Datenbank und Azure SQL Managed Instance sind die folgenden:
Option für die automatische Optimierung | Beschreibung | Unterstützung für Einzel- und Pooldatenbanken | Unterstützung der Instanzdatenbank |
---|---|---|---|
CREATE INDEX | Identifiziert Indizes, die die Leistung Ihrer Workload verbessern können, erstellt Indizes und überprüft automatisch, ob die Leistung der Abfragen verbessert wurde. Wenn ein neuer Index empfohlen wird, berücksichtigt das System den verfügbaren Speicherplatz in der Datenbank. Wenn geschätzt wird, dass das Hinzufügen von Indizes die Speicherauslastung auf über 90 % der maximalen Datengröße erhöht, wird keine Indexempfehlung erstellt. Sobald das System einen Zeitraum mit geringer Auslastung erkennt und mit der Erstellung eines Index beginnt, wird dieser Vorgang selbst dann nicht angehalten oder abgebrochen, wenn die Ressourcenauslastung unerwartet steigt. Wenn die Indexerstellung fehlschlägt, erfolgt ein Wiederholungsversuch in einem zukünftigen Zeitraum mit geringer Auslastung. Für Tabellen, bei denen der gruppierte Index oder Heap größer als 10 GB ist, werden keine Indexempfehlungen bereitgestellt. | Ja | Nein |
DROP INDEX | Mit dieser Anweisung werden nicht verwendete (in den letzten 90 Tagen) und doppelte Indizes gelöscht. Eindeutige Indizes, einschließlich Indizes, die Primärschlüssel und eindeutige Einschränkungen unterstützen, werden nie gelöscht. Diese Option wird möglicherweise automatisch deaktiviert, wenn Abfragen mit Indexhinweisen in der Workload vorhanden sind oder die Workload Partitionswechsel durchführt. In den Dienstebenen „Premium“ und „Unternehmenskritisch“ werden nicht verwendete Indizes durch diese Option nicht gelöscht. Doppelte Indizes werden hingegen gelöscht. | Ja | Nein |
FORCE LAST GOOD PLAN (automatische Plankorrektur) | Identifiziert Azure SQL-Abfragen mit einem Ausführungsplan, der langsamer als der vorherige gute Plan ist, und zwingt Abfragen, den letzten bekannten guten Plan anstelle des zurückgestellten Plans zu verwenden. | Ja | Ja |
Automatische Optimierung für SQL-Datenbank
Bei der automatischen Optimierung für Azure SQL-Datenbank werden die Empfehlungen CREATE INDEX, DROP INDEX und FORCE LAST GOOD PLAN des Datenbank-Advisors verwendet, um Ihre Datenbankleistung zu optimieren. Weitere Informationen finden Sie unter Empfehlungen des Datenbankratgebers im Azure-Portal, in PowerShell und in der REST-API.
Sie können die Optimierungsempfehlungen entweder manuell über das Azure-Portal anwenden, oder es der automatischen Optimierung überlassen, diese Empfehlungen autonom für Sie anzuwenden. Die Vorteile, die sich daraus ergeben, dass das System selbstständig Optimierungsempfehlungen für Sie anwendet, liegen darin, dass es automatisch prüft, ob ein positiver Gewinn an Workloadleistung vorliegt, und wenn keine signifikante Leistungsverbesserung festgestellt wird oder die Leistung zurückgeht, macht das System die vorgenommenen Änderungen automatisch rückgängig. Je nach Häufigkeit der Abfrageausführung kann der Validierungsprozess zwischen 30 Minuten und 72 Stunden dauern, bei weniger häufig ausgeführten Abfragen auch länger. Wenn bei der Überprüfung eine Regression erkannt wird, werden Änderungen sofort zurückgesetzt.
Wichtig
Wenn Sie Optimierungsempfehlungen über T-SQL anwenden, sind die automatische Leistungsüberprüfung und die Mechanismen für die Umkehrung nicht verfügbar. Auf diese Weise angewendete Empfehlungen bleiben zwischen 24 und 48 Stunden lang aktiv und werden in der Liste mit den Optimierungsempfehlungen angezeigt. Danach zieht sie das System automatisch zurück. Falls Sie vorher eine Empfehlung entfernen möchten, können Sie sie über das Azure-Portal verwerfen.
Die Optionen für die automatische Optimierung können unabhängig voneinander für jede Datenbank aktiviert oder deaktiviert werden. Sie können auch auf Serverebene konfiguriert und auf jede Datenbank angewandt werden, die Einstellungen von diesem Server erbt. Neue Server erben standardmäßig die Azure-Standardwerte für automatische Optimierung. Die Azure-Standardwerte werden auf FORCE_LAST_GOOD_PLAN = aktiviert, CREATE_INDEX = deaktiviert und DROP_INDEX = deaktiviert festgelegt.
Das Konfigurieren der Optionen für die automatische Optimierung auf dem Server und das Erben von Einstellungen durch die Datenbanken auf dem übergeordneten Server wird für die Konfiguration der automatischen Optimierung empfohlen. Es vereinfacht die Verwaltung von automatischen Optimierungsoptionen für eine große Anzahl von Datenbanken.
Informationen zum Erstellen von E-Mail-Benachrichtigungen für automatische Optimierungsempfehlungen finden Sie unter E-Mail-Benachrichtigungen zur automatischen Optimierung.
Automatische Optimierung für Azure SQL Managed Instance
Die automatische Optimierung für SQL Managed Instance unterstützt nur FORCE LAST GOOD PLAN. Weitere Informationen zur Konfiguration von automatischen Optimierungsoptionen per T-SQL finden Sie unter Automatisches Optimieren führt zu einer automatischen Plankorrektur und Automatische Plankorrektur.
Zu aktivierende Beispiele
Weitere Informationen finden Sie unter ALTER DATABASE SET-Optionen.
Um die Standardkonfiguration vom übergeordneten logischen Server zu erben, verwenden Sie die folgende T-SQL. Im Azure-Portal spiegelt dies die Option für „Erben von: Server“ wider.
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING = INHERIT;
Um die automatischen Optimierungsoptionen CREATE INDEX und DROP INDEX zu aktivieren, verwenden Sie die folgende T-SQL.
ALTER DATABASE CURRENT SET AUTOMATIC_TUNING (CREATE_INDEX = ON, DROP_INDEX = ON);
Automatisches Optimierungsverlauf
Für Azure SQL-Datenbank wird der Verlauf der Änderungen, die von der automatischen Optimierung vorgenommen wurden, 21 Tage lang beibehalten. Er kann im Azure-Portal auf der Seite „Leistungsempfehlungen“ für eine Datenbank angezeigt werden oder mithilfe von PowerShell mit dem Cmdlet Get-AzSqlDatabaseRecommendedAction. Für längere Aufbewahrung können Verlaufsdaten auch an mehrere Arten von Zielen übertragen werden, indem die AutomaticTuning-Diagnoseeinstellung aktiviert wird.
Zugehöriger Inhalt
- Lesen Sie den Blogbeitrag zum Optimieren von Azure SQL-Datenbank durch künstliche Intelligenz.
- Informationen dazu, wie die automatische Optimierung hinter den Kulissen funktioniert, finden Sie unter Automatisches Indizieren von Millionen von Datenbanken in Microsoft Azure SQL-Datenbank.
- Erfahren Sie, wie die automatische Optimierung Sie proaktiv bei der Diagnose und Problembehandlung bei hoher CPU-Auslastung in Azure SQL-Datenbank unterstützt.