Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
La famille de fonctionnalités de traitement intelligent des requêtes inclut des fonctionnalités qui améliorent les performances des charges de travail existantes avec un minimum d’effort d’implémentation à entreprendre. Le graphique suivant détaille la famille de fonctionnalités IQP et leur date d’introduction dans SQL Server. Toutes les fonctionnalités IQP sont disponibles dans Azure SQL Managed Instance et Azure SQL Database. Certaines fonctionnalités dépendent du niveau de compatibilité de la base de données.
Regardez cette vidéo pour obtenir une présentation du traitement intelligent des requêtes :
Pour obtenir des démonstrations et un exemple de code des fonctionnalités de traitement intelligent des requêtes (IQP) sur GitHub, visitez https://aka.ms/IQPDemos.
Vous pouvez faire en sorte que les charges de travail soient automatiquement éligibles au traitement intelligent des requêtes en activant le niveau de compatibilité applicable pour la base de données. Vous pouvez définir cette option à l’aide de Transact-SQL. Par exemple :
ALTER DATABASE [WideWorldImportersDW]
SET COMPATIBILITY_LEVEL = 170;
Le tableau suivant détaille toutes les fonctionnalités du traitement intelligent des requêtes ainsi que les exigences associées pour le niveau de compatibilité de base de données. Pour plus d’informations sur toutes les fonctionnalités IQP, notamment les notes de publication et les descriptions plus détaillées, consultez les fonctionnalités de traitement des requêtes intelligentes en détail.
Fonctionnalités IQP pour Azure SQL Database et SQL Server 2025
| Fonctionnalité de traitement intelligent des requêtes | Prise en charge dans Azure SQL Database | Pris en charge dans SQL Server 2025 (17.x) | Descriptif |
|---|---|---|---|
| Optimisation facultative du plan de paramètres (OPPO) | Non | Oui, à partir de SQL Server 2025 (17.x) avec le niveau de compatibilité 170 | Tire parti de l’infrastructure d’optimisation de plan adaptatif (Multiplan) introduite avec l’amélioration de l’optimisation du plan sensible aux paramètres (PSPO), qui génère plusieurs plans à partir d’une seule instruction. La fonctionnalité peut choisir un plan plus optimal au moment de l’exécution en fonction de la question de savoir si un paramètre est NULL OR NOT NULL, ce qui améliore les performances des requêtes qui pourraient autrement être inférieures aux performances optimales pour ces modèles de requête. |
| Feedback d’estimation de la cardinalité pour les expressions | Non | Oui, à partir de SQL Server 2025 (17.x) avec le niveau de compatibilité 160 | Étend les commentaires CE pour améliorer les estimations de cardinalité pour les expressions répétées entre les requêtes en apprenant des exécutions précédentes et en appliquant automatiquement des choix de modèle CE appropriés aux futures exécutions de ces expressions |
| OPTIMIZED_SP_EXECUTESQL | Oui | Oui, à compter de SQL Server 2025 (17.x) | Réduisez l'effet des tempêtes de compilation de manière efficace. Une tempête de compilation est une situation où un grand nombre de requêtes sont compilées simultanément, ce qui entraîne des problèmes de performances et une contention de ressources. Activez cette fonctionnalité pour autoriser les appels de sp_executesql se comporter comme des objets tels que des procédures stockées et des déclencheurs du point de vue de la compilation. |
Fonctionnalités IQP pour Azure SQL Database et SQL Server 2022
| Fonctionnalité de traitement intelligent des requêtes | Prise en charge dans Azure SQL Database | Pris en charge dans SQL Server 2022 (16.x) et versions ultérieures | Descriptif |
|---|---|---|---|
| Jointures adaptatives (mode batch) | Oui, à compter du niveau de compatibilité de base de données 140 | Oui, à compter de SQL Server 2017 (14.x) avec le niveau de compatibilité de base de données 140 | Les jointures adaptatives sélectionnent dynamiquement un type de jointure lors de l’exécution en fonction des lignes d’entrée réelles. |
| Nombre approximatif de valeurs distinctes non nulles Count Distinct | Oui | Oui, à compter de SQL Server 2019 (15.x) | Fournissez un nombre approximatif de valeurs distinctes non nulles COUNT DISTINCT pour les scénarios Big Data tout en bénéficiant d’une haute performance et d’une faible empreinte mémoire. |
| Centile approximatif | Oui, à compter du niveau de compatibilité de base de données 110 | Oui, à compter de SQL Server 2022 (16.x) avec le niveau de compatibilité 110 | Calculez rapidement des centiles pour un grand jeu de données avec des limites d’erreur acceptables basées sur le classement pour une prise de décision rapide à l’aide de fonctions d’agrégation de centiles approximatives. |
| Mode batch sur Rowstore | Oui, à compter du niveau de compatibilité de base de données 150 | Oui, à compter de SQL Server 2019 (15.x) avec le niveau de compatibilité 150 | Fournit un mode batch pour les charges de travail DW relationnelles utilisant le processeur de manière intensive sans nécessiter d’index columnstore. |
| Feedback d’estimation de la cardinalité | Oui, à compter du niveau de compatibilité de base de données 160 | Oui, à compter de SQL Server 2022 (16.x) avec le niveau de compatibilité 160 | Ajuste automatiquement les estimations de cardinalité pour les requêtes répétées afin d’optimiser les charges de travail pour lesquelles les hypothèses CE inefficaces entraînent des performances de requête médiocres. Le feedback CE identifie une hypothèse de modèle qui correspond mieux à une requête et à une distribution de données spécifiques, qui lui permet d’améliorer la qualité du plan d’exécution des requêtes. |
| Feedback de degré de parallélisme (DOP) | Oui, à compter du niveau de compatibilité de base de données 160 | Oui, à compter du niveau de compatibilité de base de données 160 | Ajuste automatiquement le degré de parallélisme pour les requêtes répétées afin d’optimiser les charges de travail où un parallélisme inefficace peut entraîner des problèmes de performance. Nécessite l’activation du Magasin des requêtes. |
| Exécution entrelacée | Oui, à compter du niveau de compatibilité de base de données 140 | Oui, à compter de SQL Server 2017 (14.x) avec le niveau de compatibilité de base de données 140 | Utilise la cardinalité réelle de la fonction table à instructions multiples rencontrée à la première compilation, au lieu d’une estimation fixe. |
| Feedback d’allocation de mémoire (mode batch) | Oui, à compter du niveau de compatibilité de base de données 140 | Oui, à compter de SQL Server 2017 (14.x) avec le niveau de compatibilité de base de données 140 | Si une requête en mode batch a des opérations débordant sur le disque, ajoutez de la mémoire pour les exécutions suivantes. Si une requête gaspille > 50 % de la mémoire qui lui est allouée, réduisez la taille de l’allocation de mémoire pour les exécutions suivantes. |
| Feedback d’allocation de mémoire (mode ligne) | Oui, à compter du niveau de compatibilité de base de données 150 | Oui, à compter de SQL Server 2019 (15.x) avec le niveau de compatibilité de base de données 150 | Si une requête en mode ligne a des opérations débordant sur le disque, ajoutez de la mémoire pour les exécutions suivantes. Si une requête gaspille > 50 % de la mémoire qui lui est allouée, réduisez la taille de l’allocation de mémoire pour les exécutions suivantes. |
| Feedback d’allocation de mémoire (mode centile) | Oui, activation sur toutes les bases de données | Oui, à compter de SQL Server 2022 (16.x) avec le niveau de compatibilité de base de données 140 | Résout les limitations existantes du feedback d’allocation de mémoire d’une manière non intrusive en incorporant l’exécution des requêtes passées pour affiner le feedback. |
| Mode persistance du feedback d’allocation de mémoire | Oui, activation sur toutes les bases de données | Oui, à compter de SQL Server 2022 (16.x) avec le niveau de compatibilité de base de données 140 | Fournit une nouvelle fonctionnalité pour rendre le feedback d’allocation de mémoire persistant. Nécessite l'activation de Query Store pour la base de données et que le mode READ_WRITE soit utilisé. |
| Mode persistance du feedback CE | Oui, à compter du niveau de compatibilité de base de données 160 | Oui, à compter de SQL Server 2022 (16.x) avec le niveau de compatibilité de base de données 160 | Nécessite l'activation de Query Store pour la base de données et que le mode READ_WRITE soit utilisé. |
| Forçage de plan optimisé avec le Magasin des requêtes | Oui | Ou, à compter de SQL Server 2022 (16.x) | Réduit la surcharge de compilation pour les requêtes forcées répétées. Pour plus d’informations, consultez Forçage de plan optimisé avec le Magasin des requêtes. |
| Incorporation (inlining) des fonctions scalaires définies par l’utilisateur | Oui, à compter du niveau de compatibilité de base de données 150 | Oui, à compter de SQL Server 2019 (15.x) avec le niveau de compatibilité de base de données 150 | Les fonctions UDF scalaires sont transformées en expressions relationnelles équivalentes qui sont incluses dans la requête appelante, ce qui entraîne souvent des gains de performances significatifs. |
| Optimisation du plan de sensibilité des paramètres | Oui, à compter du niveau de compatibilité de base de données 160 | Oui, à compter de SQL Server 2022 (16.x) avec le niveau de compatibilité de base de données 160 | L’optimisation du plan sensible aux paramètres résout le scénario dans lequel un plan mis en cache unique pour une requête paramétrable n’est pas optimal pour toutes les valeurs de paramètres entrantes possibles, par exemple les distributions de données non uniformes. |
| Compilation différée de variable de table | Oui, à compter du niveau de compatibilité de base de données 150 | Oui, à compter de SQL Server 2019 (15.x) avec le niveau de compatibilité de base de données 150 | Utilise la cardinalité réelle de la variable de table rencontrée à la première compilation, au lieu d’une estimation fixe. |
Fonctionnalité IQP pour Azure SQL Managed Instance
| Fonctionnalité de traitement intelligent des requêtes | Prise en charge dans Azure SQL Managed Instance | Descriptif |
|---|---|---|
| Jointures adaptatives (mode batch) | Oui, à compter du niveau de compatibilité de base de données 140 | Les jointures adaptatives sélectionnent dynamiquement un type de jointure lors de l’exécution en fonction des lignes d’entrée réelles. |
| Nombre approximatif de valeurs distinctes non nulles Count Distinct | Oui | Fournissez un nombre approximatif de valeurs distinctes non nulles COUNT DISTINCT pour les scénarios Big Data tout en bénéficiant d’une haute performance et d’une faible empreinte mémoire. |
| Centile approximatif | Oui, à compter du niveau de compatibilité de base de données 110 | Calculez rapidement des centiles pour un grand jeu de données avec des limites d’erreur acceptables basées sur le classement pour une prise de décision rapide à l’aide de fonctions d’agrégation de centiles approximatives. |
| Mode batch sur Rowstore | Oui, à compter du niveau de compatibilité de base de données 150 | Fournit un mode batch pour les charges de travail DW relationnelles utilisant le processeur de manière intensive sans nécessiter d’index columnstore. |
| Feedback d’estimation de la cardinalité | Oui, à compter du niveau de compatibilité de base de données 160 | Ajuste automatiquement les estimations de cardinalité pour les requêtes répétées afin d’optimiser les charges de travail pour lesquelles les hypothèses CE inefficaces entraînent des performances de requête médiocres. Le feedback CE identifie une hypothèse de modèle qui correspond mieux à une requête et à une distribution de données spécifiques, qui lui permet d’améliorer la qualité du plan d’exécution des requêtes. |
| Feedback de degré de parallélisme (DOP) | Oui, à partir du niveau de compatibilité de base de données 160 dans Azure SQL Managed Instance avec la stratégie de mise à joursql Server 2025 ou Always-up-to-date. Non, pour la stratégie de mise à jour SQL Server 2022. | Ajuste automatiquement le degré de parallélisme pour les requêtes répétées afin d’optimiser les charges de travail où un parallélisme inefficace peut entraîner des problèmes de performance. Nécessite l’activation du Magasin des requêtes. |
| Exécution entrelacée | Oui, à compter du niveau de compatibilité de base de données 140 | Utilise la cardinalité réelle de la fonction table à instructions multiples rencontrée à la première compilation, au lieu d’une estimation fixe. |
| Feedback d’allocation de mémoire (mode batch) | Oui, à compter du niveau de compatibilité de base de données 140 | Si une requête en mode batch a des opérations débordant sur le disque, ajoutez de la mémoire pour les exécutions suivantes. Si une requête gaspille > 50 % de la mémoire qui lui est allouée, réduisez la taille de l’allocation de mémoire pour les exécutions suivantes. |
| Feedback d’allocation de mémoire (mode ligne) | Oui, à compter du niveau de compatibilité de base de données 150 | Si une requête en mode ligne a des opérations débordant sur le disque, ajoutez de la mémoire pour les exécutions suivantes. Si une requête gaspille > 50 % de la mémoire qui lui est allouée, réduisez la taille de l’allocation de mémoire pour les exécutions suivantes. |
| Feedback d’allocation de mémoire (mode centile) | Oui, à compter du niveau de compatibilité de base de données 160 | Résout les limitations existantes du feedback d’allocation de mémoire d’une manière non intrusive en incorporant l’exécution des requêtes passées pour affiner le feedback. |
| Mode persistance du feedback d’allocation de mémoire, CE et DOP | Oui, à compter du niveau de compatibilité de base de données 160 | Fournit une nouvelle fonctionnalité pour rendre le feedback d’allocation de mémoire persistant. Le feedback CE et DOP est toujours persistant. Nécessite l'activation de Query Store pour la base de données et que le mode READ_WRITE soit utilisé. |
| Forçage de plan optimisé avec le Magasin des requêtes | Non | Réduit la surcharge de compilation pour les requêtes forcées répétées. Pour plus d’informations, consultez Forçage de plan optimisé avec le Magasin des requêtes. |
| Incorporation (inlining) des fonctions scalaires définies par l’utilisateur | Oui, à compter du niveau de compatibilité de base de données 150 | Les fonctions UDF scalaires sont transformées en expressions relationnelles équivalentes qui sont incluses dans la requête appelante, ce qui entraîne souvent des gains de performances significatifs. |
| Optimisation du plan de sensibilité des paramètres | Oui, à compter du niveau de compatibilité de base de données 160 | L’optimisation du plan de confidentialité des paramètres résout le scénario dans lequel un plan mis en cache unique pour une requête paramétrable n’est pas optimal pour toutes les valeurs de paramètres entrantes possibles, par exemple les distributions de données non uniformes. |
| Compilation différée de variable de table | Oui, à compter du niveau de compatibilité de base de données 150 | Utilise la cardinalité réelle de la variable de table rencontrée à la première compilation, au lieu d’une estimation fixe. |
Fonctionnalités IQP pour SQL Server 2019
| Fonctionnalité IQP | Prise en charge dans SQL Server 2019 (15.x) | Descriptif |
|---|---|---|
| Jointures adaptatives (mode batch) | Oui, à compter de SQL Server 2017 (14.x) avec le niveau de compatibilité de base de données 140 | Les jointures adaptatives sélectionnent dynamiquement un type de jointure lors de l’exécution en fonction des lignes d’entrée réelles. |
| Nombre approximatif de valeurs distinctes non nulles Count Distinct | Oui | Fournissez un nombre approximatif de valeurs distinctes non nulles COUNT DISTINCT pour les scénarios Big Data tout en bénéficiant d’une haute performance et d’une faible empreinte mémoire. |
| Mode batch sur Rowstore | Oui, à compter du niveau de compatibilité de base de données 150 | Fournit un mode batch pour les charges de travail DW relationnelles utilisant le processeur de manière intensive sans nécessiter d’index columnstore. |
| Exécution entrelacée | Oui, à compter du niveau de compatibilité de base de données 140 | Utilise la cardinalité réelle de la fonction table à instructions multiples rencontrée à la première compilation, au lieu d’une estimation fixe. |
| Feedback d’allocation de mémoire (mode batch) | Oui, à compter du niveau de compatibilité de base de données 140 | Si une requête en mode batch a des opérations débordant sur le disque, ajoutez de la mémoire pour les exécutions suivantes. Si une requête gaspille > 50 % de la mémoire qui lui est allouée, réduisez la taille de l’allocation de mémoire pour les exécutions suivantes. |
| Feedback d’allocation de mémoire (mode ligne) | Oui, à compter du niveau de compatibilité de base de données 150 | Si une requête en mode ligne a des opérations débordant sur le disque, ajoutez de la mémoire pour les exécutions suivantes. Si une requête gaspille > 50 % de la mémoire qui lui est allouée, réduisez la taille de l’allocation de mémoire pour les exécutions suivantes. |
| Incorporation (inlining) des fonctions scalaires définies par l’utilisateur | Oui, à compter du niveau de compatibilité de base de données 150 | Les fonctions UDF scalaires sont transformées en expressions relationnelles équivalentes qui sont incluses dans la requête appelante, ce qui entraîne souvent des gains de performances significatifs. |
| Compilation différée de variable de table | Oui, à compter du niveau de compatibilité de base de données 150 | Utilise la cardinalité réelle de la variable de table rencontrée à la première compilation, au lieu d’une estimation fixe. |
Fonctionnalités IQP pour SQL Server 2017
| Fonctionnalité IQP | Prise en charge dans SQL Server 2017 (14.x) | Descriptif |
|---|---|---|
| Jointures adaptatives (mode batch) | Oui, à compter de SQL Server 2017 (14.x) avec le niveau de compatibilité de base de données 140 | Les jointures adaptatives sélectionnent dynamiquement un type de jointure lors de l’exécution en fonction des lignes d’entrée réelles. |
| Nombre approximatif de valeurs distinctes non nulles Count Distinct | Oui | Fournissez un nombre approximatif de valeurs distinctes non nulles COUNT DISTINCT pour les scénarios Big Data tout en bénéficiant d’une haute performance et d’une faible empreinte mémoire. |
| Exécution entrelacée | Oui, à compter du niveau de compatibilité de base de données 140 | Utilise la cardinalité réelle de la fonction table à instructions multiples rencontrée à la première compilation, au lieu d’une estimation fixe. |
| Feedback d’allocation de mémoire (mode batch) | Oui, à compter du niveau de compatibilité de base de données 140 | Si une requête en mode batch a des opérations débordant sur le disque, ajoutez de la mémoire pour les exécutions suivantes. Si une requête gaspille > 50 % de la mémoire qui lui est allouée, réduisez la taille de l’allocation de mémoire pour les exécutions suivantes. |
Exigence du Magasin des requêtes
Plusieurs fonctionnalités de la suite de fonctionnalités de traitement intelligent des requêtes nécessitent l’activation du Magasin des requêtes afin que la la base de données utilisateur en bénéficie. Pour activer le Magasin des requêtes, consultez Activer le Magasin des requêtes.
| Fonctionnalité IQP | Nécessite l’activation du Magasin des requêtes et READ_WRITE |
|---|---|
| Jointures adaptatives (mode batch) | Non |
| Nombre approximatif de valeurs distinctes non nulles Count Distinct | Non |
| Centile approximatif | Non |
| Mode batch sur Rowstore | Non |
| Feedback d’estimation de la cardinalité | Oui |
| Feedback de degré de parallélisme (DOP) | Oui |
| Exécution entrelacée | Non |
| Feedback d’allocation de mémoire (mode batch) | Non |
| Feedback d’allocation de mémoire (mode ligne) | Non |
| Feedback d’allocation de mémoire (mode centile et persistance) | Oui |
| Forçage de plan optimisé avec le Magasin des requêtes | Oui |
| Incorporation (inlining) des fonctions scalaires définies par l’utilisateur | Non |
| Optimisation du plan de sensibilité des paramètres | Non, mais recommandé |
| Compilation différée de variable de table | Non |
Contenu associé
- Fonctionnalités de traitement des requêtes intelligentes en détail
- Jointures (SQL Server)
- Modes d’exécution
- Guide d’architecture de traitement des requêtes
- Guide de référence des opérateurs logiques et physiques du plan d’exécution de requêtes
- Nouveautés de SQL Server 2017
- Nouveautés de SQL Server 2019
- Nouveautés de SQL Server 2022
- Feedback d’allocation de mémoire
- Illustration du traitement intelligent des requêtes
- Assemblage de constantes et évaluation d’expression
- Démonstrations du traitement intelligent des requêtes sur GitHub
- Centre de performances pour le moteur de base de données SQL Server et Azure SQL Database
- Monitorer le niveau de performance à l’aide du Magasin des requêtes
- Bonnes pratiques relatives au monitoring des charges de travail avec le Magasin des requêtes