Freigeben über


Automatische Datenbankoptimierung

Gilt für:Azure SQL-DatenbankAzure SQL Managed InstanceSQL-Datenbank in Fabric

Die automatische Optimierung bietet Spitzenleistung und stabile Workloads durch kontinuierliche Leistungsoptimierung basierend auf KI und maschinellem Lernen.

Die automatische Optimierung ist ein vollständig verwalteter, intelligenter Leistungsdienst, der abfragen, die in einer Datenbank ausgeführt werden, kontinuierlich überwacht und die 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.

Sicher, zuverlässig und bewährt

Optimierungsmaßnahmen, die auf Datenbanken angewendet werden, sind vollkommen sicher für die Leistung Ihrer anspruchsvollsten Workloads. Bei der Entwicklung des Systems wurde sehr genau darauf geachtet, dass es zu keinerlei Störung der Benutzerworkloads kommt.

Diagramm, das zeigt, wie die automatische Optimierung funktioniert.

Empfehlungen der automatisierten Optimierung werden nur bei geringer Auslastung von CPU, Daten-E/A und Protokoll-E/A angewendet. Um die Leistung der Arbeitslast zu schützen, kann das System auch vorübergehend automatische Optimierungsoperationen deaktivieren. In diesem Fall wird die Meldung "Vom System deaktiviert" im Azure-Portal und in sys.database_automatic_tuning_options dynamische Verwaltungsansicht 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. Die angewendeten automatisierten Optimierungsvorgänge werden automatisch überprüft, um sicherzustellen, dass die Arbeitsauslastungsleistung erheblich verbessert wird. 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. Je länger eine Datenbank mit aktivierter automatischer Optimierung ausgeführt wird, desto mehr kann sie möglicherweise davon profitieren.

Die automatische Optimierung von Azure SQL basiert auf der gleichen Kernlogik wie die Funktion zur automatischen Optimierung von SQL Server in der Datenbank-Engine. Weitere technische Informationen zum integrierten intelligenten Mechanismus finden Sie unter SQL Server Automatic tuning (Automatische Optimierung).

Vorteile der automatischen Optimierung

Die automatisierte Leistungsoptimierung von Datenbanken umfasst:

  • Automatisierte Überprüfung von Leistungszuwächsen
  • Automatisches Rollback und automatische Selbstkorrektur
  • Optimierungsverlauf
  • Optimieren von T-SQL-Aktionsskripts (Transact-SQL) für manuelle Bereitstellungen
  • Funktion für das Aufskalieren von einigen Hunderttausend Datenbanken
  • Die positive Auswirkung auf DevOps-Ressourcen und die Gesamtkosten des Betriebs.

Aktivieren der automatischen Optimierung

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önnten, erstellt Indizes und überprüft automatisch, ob die Leistung von 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. Indexempfehlungen werden für Tabellen nicht bereitgestellt, bei denen der gruppierte Index oder Heap größer als 10 GB ist. 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 kann automatisch deaktiviert werden, wenn Abfragen mit Indexhinweisen in der Workload vorhanden sind oder wenn die Workload partitionswechsel ausfü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 Azure 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 Suchen und Anwenden von Leistungsempfehlungen 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 des eigenständigen Anwendens von Optimierungsempfehlungen durch das System bestehen darin, dass es automatisch eine positive Leistungssteigerung der Arbeitsauslastung nachweist, und wenn keine signifikante Leistungsverbesserung erkannt wird oder die Leistung zurückgeht, setzt das System automatisch die vorgenommenen Änderungen zurück. 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.

Automatische Optimierung für SQL-Datenbank in Microsoft Fabric

Die automatische Optimierungsoption für CREATE INDEX wird in der SQL-Datenbank in Microsoft Fabric automatisch aktiviert.

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);

Verlauf automatischer Optimierungen

Für die Azure SQL-Datenbank bleibt die Historie der von der automatischen Optimierung vorgenommenen Änderungen 21 Tage lang erhalten. 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.