Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
SQL-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. Die folgende Grafik zeigt die Familie der IQP-Features und wann sie zum ersten Mal für SQL Server eingeführt wurden. Alle IQP-Funktionen sind in Azure SQL Managed Instance und Azure SQL-Datenbank verfügbar. Einige Features hängen vom Datenbank-Kompatibilitätsgrad ab.
In diesem Video erhalten Sie einen Überblick über die intelligente Abfrageverarbeitung:
Informationen zu Demos und Beispielcode für intelligente Abfrageverarbeitungsfeatures (IQP) finden Sie im GitHub-Beispiel-Repository.
Sie können Workloads automatisch für die intelligente Abfrageverarbeitung anpassen, indem Sie den geeigneten Datenbank-Kompatibilitätsgrad für die Datenbank aktivieren. Sie können dies mit Transact-SQL festlegen. Zum Beispiel:
ALTER DATABASE [WideWorldImportersDW]
SET COMPATIBILITY_LEVEL = 170;
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
| IQP-Feature | Unterstützt in Azure SQL-Datenbank | Unterstützt in SQL Server 2025 (17.x) | Beschreibung |
|---|---|---|---|
| Optionale Parameterplanoptimierung (OPPO) | Ja, beginnend mit der Datenbankkompatibilitätsebene 170 | Ja, beginnend mit SQL Server 2025 (17.x) mit Datenbankkompatibilitätsebene 170 | Nutzt die Infrastruktur der adaptiven Planoptimierung (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, basierend darauf, ob ein Parameter den Wert NULL OR NOT NULL hat. Dies verbessert die Leistung für Abfragen, die sonst standardmäßig eine suboptimale Leistung für solche Abfragemuster aufweisen könnten. |
| Kardinalitätsschätzung (CE) feedback für expressions | Ja, beginnend mit der Datenbankkompatibilitätsebene 170 | Ja, beginnend mit SQL Server 2025 (17.x) mit Datenbankkompatibilitätsebene 160 | Erweitert CE-Feedback, um Kardinalitätsschätzungen für wiederholte Ausdrücke über Abfragen hinweg zu verbessern, indem sie aus früheren Ausführungen lernen und automatisch geeignete CE-Modelloptionen auf zukünftige Ausführungen dieser Ausdrücke anwenden. |
| OPTIMIZED_SP_EXECUTESQL | Ja | Ja, beginnend mit SQL Server 2025 (17.x) | Reduzieren Sie effektiv die Auswirkungen von Kompilierungsstürmen. Ein Kompilierungssturm ist 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) und höheren Versionen | Beschreibung |
|---|---|---|---|
| Adaptive Verknüpfungen (Batchmodus) | Ja, ab Datenbank-Kompatibilitätsgrad 140 | Ja, ab SQL Server 2017 (14.x) mit Datenbankkompatibilitätsebene 140 | Adaptive Joins wählen je nach tatsächlichen Eingabezeilen während der Laufzeit dynamisch einen Jointyp aus. |
| Ungefähre Anzahl eindeutiger Elemente | Ja | Ja, ab SQL Server 2019 (15.x) | Ungefähre COUNT DISTINCT für Big-Data-Szenarien mit dem Vorteil einer hohen Leistung und eines geringen Speicherbedarfs. |
| Ungefährer Perzentil | Ja, ab Datenbank-Kompatibilitätsgrad 110 | Ja, ab SQL Server 2022 (16.x) mit Kompatibilitätsebene 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 im Rowstore | Ja, ab Datenbank-Kompatibilitätsgrad 150 | Ja, ab SQL Server 2019 (15.x) mit Kompatibilitätsebene 150 | Stellt den Batchmodus für CPU-gebundene relationale Data Warehouse-Workloads bereit, ohne Columnstore-Indizes zu benötigen. |
| Kardinalitätsschätzung (CE) feedback | Ja, ab Datenbank-Kompatibilitätsgrad 160 | Ja, ab SQL Server 2022 (16.x) mit Kompatibilitätsebene 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. |
| Grad der Parallelität (DOP) feedback | Ja, ab Datenbank-Kompatibilitätsgrad 160 | Ja, ab Datenbank-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. Es wird erfordert, dass der Abfragespeicher aktiviert ist. |
| Verschachtelte Ausführung | Ja, ab Datenbank-Kompatibilitätsgrad 140 | Ja, ab SQL Server 2017 (14.x) mit Datenbankkompatibilitätsebene 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 (Batch Mode) | Ja, ab Datenbank-Kompatibilitätsgrad 140 | Ja, ab SQL Server 2017 (14.x) mit Datenbankkompatibilitätsebene 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 (Row Mode) | Ja, ab Datenbank-Kompatibilitätsgrad 150 | Ja, ab SQL Server 2019 (15.x) mit Datenbankkompatibilitätsebene 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 (Percentile) | Ja, für alle Datenbanken aktiviert | Ja, beginnend mit SQL Server 2022 (16.x)) mit Datenbankkompatibilitätsebene 140 | Behebt vorhandene Einschränkungen des Feedbacks zur Speicherzuweisung auf nicht-intrusive Weise durch Einbeziehung der früheren Abfrageausführung zum Verfeinern des Feedbacks. |
| Feedback zur Speicherzuweisung persistence | Ja, für alle Datenbanken aktiviert | Ja, beginnend mit SQL Server 2022 (16.x)) mit Datenbankkompatibilitätsebene 140 | Bietet neue Funktionen für die Persistenz des Feedbacks zur Speicherzuweisung. Erfordert, dass der Abfragespeicher für die Datenbank aktiviert ist und im Modus READ_WRITE steht. |
| CE-Feedback-Persistenz | Ja, ab Datenbank-Kompatibilitätsgrad 160 | Ja, beginnend mit SQL Server 2022 (16.x)) mit Datenbankkompatibilitätsebene 160 | Erfordert, dass Abfragespeicher für die Datenbank und im Modus READ_WRITE aktiviert werden. |
| Optimiertes Planerzwung mit Abfragespeicher | Ja | Ja, beginnend mit SQL Server 2022 (16.x)). | Reduziert den Kompilierungsaufwand für wiederholte erzwungene Abfragen. Weitere Informationen finden Sie unter Erzwingen optimierter Pläne mit Abfragespeicher. |
| Skalare UDF-Inlining | Ja, ab Datenbank-Kompatibilitätsgrad 150 | Ja, ab SQL Server 2019 (15.x) mit Datenbankkompatibilitätsebene 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 des parametersensitiven Plans | Ja, ab Datenbank-Kompatibilitätsgrad 160 | Ja, ab SQL Server 2022 (16.x) mit Datenbankkompatibilitätsebene 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. |
| Zurückgestellte Kompilierung von Tabellenvariablen | Ja, ab Datenbank-Kompatibilitätsgrad 150 | Ja, ab SQL Server 2019 (15.x) mit Datenbankkompatibilitätsebene 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 Azure SQL Managed Instance
| IQP-Feature | Unterstützt in Azure SQL Managed Instance | Beschreibung |
|---|---|---|
| Adaptive Verknüpfungen (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 Elemente | Ja | Ungefähre COUNT DISTINCT für Big-Data-Szenarien mit dem Vorteil einer hohen Leistung und eines geringen Speicherbedarfs. |
| Ungefährer 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 im 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. |
| Kardinalitätsschätzung (CE) feedback | 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. |
| Kardinalitätsschätzung (CE) feedback für expressions | Ja, beginnend mit der Datenbankkompatibilitätsebene 160 in Azure SQL Managed Instance, mit dem SQL Server 2025 oder Always-up-to-dateupdate policy. Nein, für die SQL Server 2022-Updaterichtlinie. | Erweitert CE-Feedback, um Kardinalitätsschätzungen für wiederholte Ausdrücke über Abfragen hinweg zu verbessern, indem sie aus früheren Ausführungen lernen und automatisch geeignete CE-Modelloptionen auf zukünftige Ausführungen dieser Ausdrücke anwenden. |
| Grad der Parallelität (DOP) feedback | Ja, beginnend mit der Datenbankkompatibilitätsebene 160 in Azure SQL Managed Instance mit der SQL Server 2025 oder Always-up-to-dateUpdate-Richtlinie. Nein, für die SQL Server 2022-Updaterichtlinie. | Automatische Anpassung des Parallelitätsgrads für wiederholte Abfragen zur Optimierung von Workloads, bei denen ineffiziente Parallelität zu Leistungsproblemen führen kann. Erfordert, dass der Abfragespeicher aktiviert ist. |
| 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 (Batch Mode) | 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 (Row Mode) | 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 (Percentile) | 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. |
| Speicherzuschuss, CE, und DOP-Feedback-Persistenz | 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 Abfragespeicher für die Datenbank aktiviert und im Modus READ_WRITE ist. |
| Optionale Parameterplanoptimierung (OPPO) | Ja, beginnend mit der Datenbankkompatibilitätsebene 170 in Azure SQL Managed Instance mit der SQL Server 2025 oder Always-up-to-dateUpdate-Richtlinie. Nein, für die SQL Server 2022-Updaterichtlinie. | Nutzt die Infrastruktur der adaptiven Planoptimierung (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, basierend darauf, ob ein Parameter den Wert NULL OR NOT NULL hat. Dies verbessert die Leistung für Abfragen, die sonst standardmäßig eine suboptimale Leistung für solche Abfragemuster aufweisen könnten. |
| Optimierte Planerzwingung mit Abfragespeicher | Ohne | Reduziert den Kompilierungsaufwand für wiederholte erzwungene Abfragen. Weitere Informationen finden Sie unter Optimiertes erzwingen von Plänen mit Abfragespeicher. |
| Optimierung des parametersensitiven Plans | 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. |
| Skalare UDF-Inlining | 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 2019
| IQP-Funktion | Unterstützt in SQL Server 2019 (15.x) | Beschreibung |
|---|---|---|
| Adaptive Joins im Batchmodus | Ja, ab SQL Server 2017 (14.x) mit Datenbankkompatibilitätsebene 140 | Adaptive Joins wählen je nach tatsächlichen Eingabezeilen während der Laufzeit dynamisch einen Jointyp aus. |
| Ungefähre Anzahl eindeutig | Ja | Ungefähre COUNT DISTINCT für Big-Data-Szenarien mit dem Vorteil einer hohen Leistung und eines geringen Speicherbedarfs. |
| Batchmodus im 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. |
| Interleaved Execution | 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 (Batch Mode) | 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 (Row Mode) | 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. |
| Skalare UDF-Inlining | 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 Verknüpfungen (Batch-Modus) | Ja, ab SQL Server 2017 (14.x) mit Datenbankkompatibilitätsebene 140 | Adaptive Joins wählen je nach tatsächlichen Eingabezeilen während der Laufzeit dynamisch einen Jointyp aus. |
| Ungefähre eindeutige Anzahl | Ja | Ungefähre COUNT DISTINCT für Big-Data-Szenarien mit dem Vorteil einer hohen Leistung und eines geringen Speicherbedarfs. |
| Verzahnte 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 (Batch Mode) | 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. |
Abfragespeicher Anforderung
Mehrere der Features zur intelligenten Abfrageverarbeitung erfordern die Aktivierung des Abfragespeichers, damit die Benutzerdatenbank davon profitiert. Informationen zum Aktivieren des Abfragespeicher finden Sie unter Enable the Abfragespeicher.
| IQP-Funktion | Erfordert, dass Abfragespeicher aktiviert werden und READ_WRITE |
|---|---|
| Adaptive Verknüpfungen (Batchmodus) | Nein |
| Ungefähre eindeutige Anzahl | Nein |
| Ungefährer Perzentil | Nein |
| Batchmodus im Rowstore | Nein |
| Kardinalitätsschätzung (CE) feedback | Ja |
| Grad der Parallelität (DOP) feedback | Ja |
| Interleavierte Ausführung | Nein |
| Feedback zur Speicherzuweisung (Batch Mode) | Nein |
| Feedback zur Speicherzuweisung (Row Mode) | Nein |
| Feedback zur Speicherzuweisung (Perzentil- und Persistenzmodus) | Ja |
| Optimierte Planerzwingung mit dem Abfragespeicher | Ja |
| Skalare UDF-Inline-Verarbeitung | Nein |
| Optimierung des parametersensitiven Plans | Nein, aber empfohlen |
| Verzögerte Kompilierung von Tabellenvariablen | Nein |
Zugehöriger Inhalt
- Intelligente Abfrageverarbeitungsfeatures im Detail
- Joins (SQL Server)
- Ausführungsmodi
- Leitfaden zur Architektur der Abfrageverarbeitung
- Referenz zu logischen und physischen Showplan-Operatoren
- Was gibt es Neues in SQL Server 2017
- What's new in SQL Server 2019
- Was ist neu in SQL Server 2022
- Feedback zur Speicherzuweisung
- Demonstration intelligenter Abfrageverarbeitung
- Konstante Faltung und Ausdrucksauswertung
- Demos zur intelligenten Abfrageverarbeitung auf GitHub
- Performance Center für SQL Server-Datenbank-Engine und Azure SQL-Datenbank
- Überwachen Sie die Leistung mithilfe des Abfragespeichers
- Best-Methoden für die Überwachung von Workloads mit Abfragespeicher