Freigeben über


Intelligente Abfrageverarbeitung in SQL-Datenbanken

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

Die Featurefamilie „Intelligente Abfrageverarbeitung“ (Intelligent Query Processing, IQP) umfasst Features mit weitreichenden Auswirkungen, die die Leistung vorhandener Workloads mit minimalem Implementierungsaufwand verbessern. Aus der folgenden Grafik geht die Familie von IQP-Features und ihre erstmalige Einführung für SQL Server hervor. Alle IQP-Features sind in Azure SQL Managed Instance und Azure SQL-Datenbank verfügbar. Einige Features hängen vom Datenbank-Kompatibilitätsgrad ab.

Diagramm der Featurefamilie „Intelligente Abfrageverarbeitung“ und ihrer ersten Einführung in SQL Server.

In diesem Video erhalten Sie einen Überblick über die intelligente Abfrageverarbeitung:

 

Demos und Beispielcode von Features für die intelligente Abfrageverarbeitung (IQP) auf GitHub finden Sie unter https://aka.ms/IQPDemos.

Sie können Workloads automatisch für die intelligente Abfrageverarbeitung anpassen, indem Sie den geeigneten Datenbank-Kompatibilitätsgrad für die Datenbank aktivieren. Diesen können Sie mit Transact-SQL festlegen. Zum Beispiel:

ALTER DATABASE [WideWorldImportersDW] SET COMPATIBILITY_LEVEL = 160;

In der folgenden Tabelle sind Details zu allen Features der intelligenten Abfrageverarbeitung dargestellt, sowie deren jeweiligen Anforderungen für den Datenbank-Kompatibilitätsgrad. Ausführliche Informationen zu allen IQP-Features, einschließlich Versionshinweisen und ausführlicheren Beschreibungen, finden Sie unter "Intelligente Abfrageverarbeitungsfeatures" im Detail.

IQP-Features für Azure SQL-Datenbank und SQL Server 2025 Preview

IQP-Feature Unterstützt in Azure SQL-Datenbank Unterstützt in der Vorschau von SQL Server 2025 (17.x) Beschreibung
Optimierter Halloween-Schutz Nein Ja, ab SQL Server 2025 (17.x) Vorschau mit Kompatibilitätsebene 170 Reduziert den tempdb Platzverbrauch und verbessert die Abfrageleistung, indem kein Spool zum Halloween-Schutz verwendet wird.
Optionale Parameterplanoptimierung (OPPO) Nein Ja, ab SQL Server 2025 (17.x) Vorschau mit Kompatibilitätsebene 170 Nutzt die adaptive Planoptimierungsinfrastruktur (Multiplan), die mit der Verbesserung der Parameter Sensitive Plan Optimization (PSPO) eingeführt wurde, die mehrere Pläne aus einer einzigen Anweisung generiert. Das Feature kann zur Laufzeit einen optimaleren Plan auswählen, je nachdem, ob ein Parameter NULL OR NOT NULL ist, was die Leistung für Abfragen verbessert, die sonst auf eine suboptimale Leistung für solche Abfragemuster festgelegt wären.
Feedback zur Kardinalitätsschätzung (CE) für Formeln Nein Ja, beginnend mit SQL Server 2025 (17.x) Vorschau mit Kompatibilitätsebene 160 Erweitert CE-Feedback, um Kardinalitätsschätzungen für wiederholte Ausdrücke über Abfragen hinweg zu verbessern, indem sie von früheren Ausführungen lernen und automatisch geeignete CE-Modelloptionen auf zukünftige Ausführungen dieser Ausdrücke anwenden
OPTIMIZED_SP_EXECUTESQL Ja Ja, ab SQL Server 2025 (17.x) Vorschau Reduzieren Sie effektiv die Auswirkungen von Kompilierungsstürmen. Ein Kompilierungssturm bezieht sich auf eine Situation, in der eine große Anzahl von Abfragen gleichzeitig kompiliert wird, was zu Leistungsproblemen und Ressourcenkonflikten führt. Aktivieren Sie dieses Feature, damit sich Aufrufe sp_executesql wie Objekte wie gespeicherte Prozeduren und Trigger aus Kompilierungsperspektive verhalten können.

IQP-Features für Azure SQL-Datenbank und SQL Server 2022

IQP-Feature Unterstützt in Azure SQL-Datenbank Unterstützt in SQL Server 2022 (16.x) Beschreibung
Adaptive Joins (Batchmodus) Ja, ab Datenbank-Kompatibilitätsgrad 140 Ja, ab SQL Server 2017 (14.x) mit Datenbank-Kompatibilitätsgrad 140 Adaptive Joins wählen je nach tatsächlichen Eingabezeilen während der Laufzeit dynamisch einen Jointyp aus.
Ungefähre Anzahl unterschiedlicher Ja Ja, ab SQL Server 2019 (15.x) Bieten Sie ungefähre COUNT DISTINCT Informationen für Big Data-Szenarien mit dem Vorteil von hoher Leistung und einem geringen Speicherbedarf.
Angenähertes Perzentil Ja, ab Datenbank-Kompatibilitätsgrad 110 Ja, ab SQL Server 2022 (16.x) mit Kompatibilitätsgrad 110 Berechnen Sie mithilfe von Aggregatfunktionen für angenäherte Perzentile schnell und mit annehmbaren rangbasierten Fehlergrenzen Perzentile für ein großes Dataset, um schnell Entscheidungen zu treffen.
Batchmodus bei Rowstore Ja, ab Datenbank-Kompatibilitätsgrad 150 Ja, ab SQL Server 2019 (15.x) mit Kompatibilitätsgrad 150 Stellt den Batchmodus für CPU-gebundene relationale Data Warehouse-Workloads bereit, ohne Columnstore-Indizes zu benötigen.
Feedback zur Kardinalitätsschätzung (CE) Ja, ab Datenbank-Kompatibilitätsgrad 160 Ja, ab SQL Server 2022 (16.x) mit Kompatibilitätsgrad 160 Automatische Anpassung von Kardinalitätsschätzungen für wiederholte Abfragen zum Optimieren von Workloads, bei denen ineffiziente CE-Annahmen zu einer schlechten Abfrageleistung führen. Das Feedback zur Kardinalitätsschätzung identifiziert und verwendet eine Modellannahme, die besser zu einer bestimmten Abfrage- und Datenverteilung passt, um die Qualität des Abfrageausführungsplans zu verbessern.
Feedback zum Grad der Parallelität Ja, in der Vorschau, ab Datenbank-Kompatibilitätsgrad 160 Ja, ab SQL Server 2022 (16.x) mit Kompatibilitätsgrad 160 Automatische Anpassung des Parallelitätsgrads für wiederholte Abfragen zur Optimierung von Workloads, bei denen ineffiziente Parallelität zu Leistungsproblemen führen kann. Erfordert Abfragespeicher, um aktiviert zu werden.
Verschachtelte Ausführung Ja, ab Datenbank-Kompatibilitätsgrad 140 Ja, ab SQL Server 2017 (14.x) mit Datenbank-Kompatibilitätsgrad 140 Verwendet die tatsächliche Kardinalität der Tabellenwertfunktion mit mehreren Anweisungen, die bei der ersten Kompilierung aufgetreten ist, anstatt einer festgelegten Schätzung.
Feedback zur Speicherzuweisung (Batchmodus) Ja, ab Datenbank-Kompatibilitätsgrad 140 Ja, ab SQL Server 2017 (14.x) mit Datenbank-Kompatibilitätsgrad 140 Wenn es für eine Abfrage im Batchmodus Operationen gibt, die sich auf den Datenträger auswirken, wird für anschließende Ausführungen mehr Speicher hinzugefügt. Wenn eine Abfrage unnötigerweise > 50 % des zugewiesenen Speichers belegt, wird die Speicherzuweisungsgröße für anschließende Ausführungen reduziert.
Feedback zur Speicherzuweisung (Zeilenmodus) Ja, ab Datenbank-Kompatibilitätsgrad 150 Ja, ab SQL Server 2019 (15.x) mit Datenbank-Kompatibilitätsgrad 150 Wenn es für eine Abfrage im Zeilenmodus Operationen gibt, die sich auf den Datenträger auswirken, wird für anschließende Ausführungen mehr Speicher hinzugefügt. Wenn eine Abfrage unnötigerweise > 50 % des zugewiesenen Speichers belegt, wird die Speicherzuweisungsgröße für anschließende Ausführungen reduziert.
Feedback zur Speicherzuweisung (Quantil) Ja, für alle Datenbanken aktiviert Ja, ab SQL Server 2022 (16.x)) mit Datenbank-Kompatibilitätsgrad 140 Behebt vorhandene Einschränkungen des Feedbacks zur Speicherzuweisung auf nicht-intrusive Weise durch Einbeziehung der früheren Abfrageausführung zum Verfeinern des Feedbacks.
Persistenz des Feedbacks zur Speicherzuweisung Ja, für alle Datenbanken aktiviert Ja, ab SQL Server 2022 (16.x)) mit Datenbank-Kompatibilitätsgrad 140 Bietet neue Funktionen für die Persistenz des Feedbacks zur Speicherzuweisung. Erfordert, dass der Abfragespeicher für die Datenbank aktiviert ist und sich im READ_WRITE-Modus befindet.
CE-Feedbackpersistenz Ja, ab Datenbank-Kompatibilitätsgrad 160 Ja, ab SQL Server 2022 (16.x)) mit Datenbank-Kompatibilitätsgrad 160 Erfordert, dass der Abfragespeicher für die Datenbank aktiviert ist und sich im READ_WRITE-Modus befindet.
DOP-Feedbackpersistenz Ja, in der Vorschau, ab Datenbank-Kompatibilitätsgrad 160 Ja, ab SQL Server 2022 (16.x)) mit Datenbank-Kompatibilitätsgrad 160 Erfordert, dass der Abfragespeicher für die Datenbank aktiviert ist und sich im READ_WRITE-Modus befindet.
Optimiertes Erzwingen des Plans mit dem Abfragespeicher Ja Ja, ab SQL Server 2022 (16.x)). Reduziert den Kompilierungsaufwand für wiederholte erzwungene Abfragen. Weitere Informationen finden Sie unter Optimierte Planerzwingung mit dem Abfragespeicher.
Inlining benutzerdefinierter Skalarfunktionen Ja, ab Datenbank-Kompatibilitätsgrad 150 Ja, ab SQL Server 2019 (15.x) mit Datenbank-Kompatibilitätsgrad 150 Benutzerdefinierte Skalarfunktionen werden in äquivalente relationale Ausdrücke transformiert, für die „Inlining“ in die aufrufende Abfrage ausgeführt wird, was häufig zu erheblichen Leistungssteigerungen führt.
Optimierung parametersensitiver Pläne Ja, ab Datenbank-Kompatibilitätsgrad 160 Ja, ab SQL Server 2022 (16.x) mit Datenbank-Kompatibilitätsgrad 160 Parameter Sensitive Plan-Optimierung behebt das Szenario, in dem ein einzelner zwischengespeicherter Plan für eine parametrisierte Abfrage für alle möglichen eingehenden Parameterwerte, z. B. nicht einheitliche Datenverteilungen, nicht optimal ist.
Verzögerte Kompilierung von Tabellenvariablen Ja, ab Datenbank-Kompatibilitätsgrad 150 Ja, ab SQL Server 2019 (15.x) mit Datenbank-Kompatibilitätsgrad 150 Verwendet die tatsächliche Kardinalität der Tabellenvariable, die bei der ersten Kompilierung aufgetreten ist, anstatt einer festgelegten Schätzung.

IQP-Feature für Azure SQL Managed Instance

IQP-Feature Unterstützt in Azure SQL Managed Instance Beschreibung
Adaptive Joins (Batchmodus) Ja, ab Datenbank-Kompatibilitätsgrad 140 Adaptive Joins wählen je nach tatsächlichen Eingabezeilen während der Laufzeit dynamisch einen Jointyp aus.
Ungefähre Anzahl unterschiedlicher Ja Bieten Sie ungefähre COUNT DISTINCT Informationen für Big Data-Szenarien mit dem Vorteil von hoher Leistung und einem geringen Speicherbedarf.
Angenähertes Perzentil Ja, ab Datenbank-Kompatibilitätsgrad 110 Berechnen Sie mithilfe von Aggregatfunktionen für angenäherte Perzentile schnell und mit annehmbaren rangbasierten Fehlergrenzen Perzentile für ein großes Dataset, um schnell Entscheidungen zu treffen.
Batchmodus bei Rowstore Ja, ab Datenbank-Kompatibilitätsgrad 150 Stellt den Batchmodus für CPU-gebundene relationale Data Warehouse-Workloads bereit, ohne Columnstore-Indizes zu benötigen.
Feedback zur Kardinalitätsschätzung (CE) Ja, ab Datenbank-Kompatibilitätsgrad 160 Automatische Anpassung von Kardinalitätsschätzungen für wiederholte Abfragen zum Optimieren von Workloads, bei denen ineffiziente CE-Annahmen zu einer schlechten Abfrageleistung führen. Das Feedback zur Kardinalitätsschätzung identifiziert und verwendet eine Modellannahme, die besser zu einer bestimmten Abfrage- und Datenverteilung passt, um die Qualität des Abfrageausführungsplans zu verbessern.
Feedback zum Grad der Parallelität Ohne Automatische Anpassung des Parallelitätsgrads für wiederholte Abfragen zur Optimierung von Workloads, bei denen ineffiziente Parallelität zu Leistungsproblemen führen kann. Erfordert Abfragespeicher, um aktiviert zu werden.
Verschachtelte Ausführung Ja, ab Datenbank-Kompatibilitätsgrad 140 Verwendet die tatsächliche Kardinalität der Tabellenwertfunktion mit mehreren Anweisungen, die bei der ersten Kompilierung aufgetreten ist, anstatt einer festgelegten Schätzung.
Feedback zur Speicherzuweisung (Batchmodus) Ja, ab Datenbank-Kompatibilitätsgrad 140 Wenn es für eine Abfrage im Batchmodus Operationen gibt, die sich auf den Datenträger auswirken, wird für anschließende Ausführungen mehr Speicher hinzugefügt. Wenn eine Abfrage unnötigerweise > 50 % des zugewiesenen Speichers belegt, wird die Speicherzuweisungsgröße für anschließende Ausführungen reduziert.
Feedback zur Speicherzuweisung (Zeilenmodus) Ja, ab Datenbank-Kompatibilitätsgrad 150 Wenn es für eine Abfrage im Zeilenmodus Operationen gibt, die sich auf den Datenträger auswirken, wird für anschließende Ausführungen mehr Speicher hinzugefügt. Wenn eine Abfrage unnötigerweise > 50 % des zugewiesenen Speichers belegt, wird die Speicherzuweisungsgröße für anschließende Ausführungen reduziert.
Feedback zur Speicherzuweisung (Quantil) Ja, ab Datenbank-Kompatibilitätsgrad 160 Behebt vorhandene Einschränkungen des Feedbacks zur Speicherzuweisung auf nicht-intrusive Weise durch Einbeziehung der früheren Abfrageausführung zum Verfeinern des Feedbacks.
Persistenz des Feedbacks zu Speicherzuweisung, CE und DOP Ja, ab Datenbank-Kompatibilitätsgrad 160 Bietet neue Funktionen für die Persistenz des Feedbacks zur Speicherzuweisung. CE- und DOP-Feedback sind immer persistent. Erfordert, dass der Abfragespeicher für die Datenbank aktiviert ist und sich im READ_WRITE-Modus befindet.
Optimiertes Erzwingen des Plans mit dem Abfragespeicher Ohne Reduziert den Kompilierungsaufwand für wiederholte erzwungene Abfragen. Weitere Informationen finden Sie unter Optimierte Planerzwingung mit dem Abfragespeicher.
Inlining benutzerdefinierter Skalarfunktionen Ja, ab Datenbank-Kompatibilitätsgrad 150 Benutzerdefinierte Skalarfunktionen werden in äquivalente relationale Ausdrücke transformiert, für die „Inlining“ in die aufrufende Abfrage ausgeführt wird, was häufig zu erheblichen Leistungssteigerungen führt.
Optimierung parametersensitiver Pläne Ja, ab Datenbank-Kompatibilitätsgrad 160 Die Optimierung des Parameterempfindlichkeitsplans behebt das Szenario, in dem ein einzelner zwischengespeicherter Plan für eine parametrisierte Abfrage für alle möglichen eingehenden Parameterwerte, z. B. nicht einheitliche Datenverteilungen, nicht optimal ist.
Verzögerte Kompilierung von Tabellenvariablen Ja, ab Datenbank-Kompatibilitätsgrad 150 Verwendet die tatsächliche Kardinalität der Tabellenvariable, die bei der ersten Kompilierung aufgetreten ist, anstatt einer festgelegten Schätzung.

IQP-Features für SQL Server 2019

IQP-Funktion Unterstützt in SQL Server 2019 (15.x) Beschreibung
Adaptive Joins (Batchmodus) Ja, ab SQL Server 2017 (14.x) mit Datenbank-Kompatibilitätsgrad 140 Adaptive Joins wählen je nach tatsächlichen Eingabezeilen während der Laufzeit dynamisch einen Jointyp aus.
Ungefähre Anzahl unterschiedlicher Ja Bieten Sie ungefähre COUNT DISTINCT Informationen für Big Data-Szenarien mit dem Vorteil von hoher Leistung und einem geringen Speicherbedarf.
Batchmodus bei Rowstore Ja, ab Datenbank-Kompatibilitätsgrad 150 Stellt den Batchmodus für CPU-gebundene relationale Data Warehouse-Workloads bereit, ohne Columnstore-Indizes zu benötigen.
Verschachtelte Ausführung Ja, ab Datenbank-Kompatibilitätsgrad 140 Verwendet die tatsächliche Kardinalität der Tabellenwertfunktion mit mehreren Anweisungen, die bei der ersten Kompilierung aufgetreten ist, anstatt einer festgelegten Schätzung.
Feedback zur Speicherzuweisung (Batchmodus) Ja, ab Datenbank-Kompatibilitätsgrad 140 Wenn es für eine Abfrage im Batchmodus Operationen gibt, die sich auf den Datenträger auswirken, wird für anschließende Ausführungen mehr Speicher hinzugefügt. Wenn eine Abfrage unnötigerweise > 50 % des zugewiesenen Speichers belegt, wird die Speicherzuweisungsgröße für anschließende Ausführungen reduziert.
Feedback zur Speicherzuweisung (Zeilenmodus) Ja, ab Datenbank-Kompatibilitätsgrad 150 Wenn es für eine Abfrage im Zeilenmodus Operationen gibt, die sich auf den Datenträger auswirken, wird für anschließende Ausführungen mehr Speicher hinzugefügt. Wenn eine Abfrage unnötigerweise > 50 % des zugewiesenen Speichers belegt, wird die Speicherzuweisungsgröße für anschließende Ausführungen reduziert.
Inlining benutzerdefinierter Skalarfunktionen Ja, ab Datenbank-Kompatibilitätsgrad 150 Benutzerdefinierte Skalarfunktionen werden in äquivalente relationale Ausdrücke transformiert, für die „Inlining“ in die aufrufende Abfrage ausgeführt wird, was häufig zu erheblichen Leistungssteigerungen führt.
Verzögerte Kompilierung von Tabellenvariablen Ja, ab Datenbank-Kompatibilitätsgrad 150 Verwendet die tatsächliche Kardinalität der Tabellenvariable, die bei der ersten Kompilierung aufgetreten ist, anstatt einer festgelegten Schätzung.

IQP-Features für SQL Server 2017

IQP-Funktion Unterstützt in SQL Server 2017 (14.x) Beschreibung
Adaptive Joins (Batchmodus) Ja, ab SQL Server 2017 (14.x) mit Datenbank-Kompatibilitätsgrad 140 Adaptive Joins wählen je nach tatsächlichen Eingabezeilen während der Laufzeit dynamisch einen Jointyp aus.
Ungefähre Anzahl unterschiedlicher Ja Bieten Sie ungefähre COUNT DISTINCT Informationen für Big Data-Szenarien mit dem Vorteil von hoher Leistung und einem geringen Speicherbedarf.
Verschachtelte Ausführung Ja, ab Datenbank-Kompatibilitätsgrad 140 Verwendet die tatsächliche Kardinalität der Tabellenwertfunktion mit mehreren Anweisungen, die bei der ersten Kompilierung aufgetreten ist, anstatt einer festgelegten Schätzung.
Feedback zur Speicherzuweisung (Batchmodus) Ja, ab Datenbank-Kompatibilitätsgrad 140 Wenn es für eine Abfrage im Batchmodus Operationen gibt, die sich auf den Datenträger auswirken, wird für anschließende Ausführungen mehr Speicher hinzugefügt. Wenn eine Abfrage unnötigerweise > 50 % des zugewiesenen Speichers belegt, wird die Speicherzuweisungsgröße für anschließende Ausführungen reduziert.

Anforderung an den Abfragespeicher

Für mehrere der Features für die intelligente Abfrageverarbeitung muss der Abfragespeicher aktiviert werden, damit sie der Benutzerdatenbank zugute kommen. Informationen zum Aktivieren des Abfragespeichers finden Sie unter Aktivieren des Abfragespeichers.

IQP-Funktion Erfordert, dass Abfragespeicher aktiviert ist und READ_WRITE
Adaptive Joins (Batchmodus) Nein
Ungefähre Anzahl unterschiedlicher Nein
Angenähertes Perzentil Nein
Batchmodus bei Rowstore Nein
Feedback zur Kardinalitätsschätzung (CE) Ja
Feedback zum Grad der Parallelität Ja
Verschachtelte Ausführung Nein
Feedback zur Speicherzuweisung (Batchmodus) Nein
Feedback zur Speicherzuweisung (Zeilenmodus) Nein
Feedback zur Speicherzuweisung (Quantil- und Persistenzmodus) Ja
Optimiertes Erzwingen des Plans mit dem Abfragespeicher Ja
Inlining benutzerdefinierter Skalarfunktionen Nein
Optimierung parametersensitiver Pläne Nein, aber empfohlen
Verzögerte Kompilierung von Tabellenvariablen Nein