Diagnostics améliorés pour les plans d’exécution de requêtes qui impliquent des prédicats résiduels dans SQL Server

Symptômes

Certains plans d’exécution de requête dans Microsoft SQL Server incluent un motif d’évaluation d’un filtre sur une opération de balayage/plage de table ou d’index. Certaines parties du prédicat de filtre peuvent correspondre à une clé d’index et peuvent par conséquent être utilisés pour exécuter une analyse d’index seek ou de la plage. Les autres parties du prédicat sont dites « résiduelles » et doivent être évaluées pour chaque ligne de sortie par l’opération d’analyse ou de plage. Cela correspond à un opérateur de filtre. Toutefois, pour améliorer les performances, SQL Server peut pousser un filtre à l’opérateur d’accès de table.

Bien que cette approche améliore les performances globales, sous certaines conditions (par exemple, dans le cas d’une estimation de cardinalité incorrectes qui est liée à une sensibilité de paramètre), le filtre analyse ci-dessous peut traiter un plus grand nombre de lignes que prévu. Ce fait peut être masqué en cours du dépannage des performances de requêtes lorsque vous utilisez un plan d’exécution, parce que le nombre réel de lignes retourné correspond au nombre de lignes après avoir appliqué le prédicat résiduel et pas au nombre réel de lignes qui sont analysées à partir d’une table ou un index.

Résolution

Pour améliorer les diagnostics pour le scénario décrit dans la section Symptômes, SQL Server 2012 Service Pack 3 (SP3) et SQL Server 2014 SP2 introduisent un attribut XML showplan, Lecture de lignes réel. Cet attribut fournit des informations sur le nombre de lignes qui ont été lus par l’opérateur avant le prédicat résiduel a été appliqué.

Cette fonctionnalité a été a été introduite dans les Service Packs suivants pour SQL Server.

Pour plus d’informations sur SQL Server 2012 avec le Service Pack 3 (SP3), consultez les bogues qui sont corrigés dans le Service Pack 3 de SQL Server 2012 .

À propos des Service Packs pour SQL Server

Les Service Packs sont cumulatifs. Chaque nouveau service pack contient tous les correctifs qui se trouvent dans les service packs précédents et tous les nouveaux correctifs. Notre recommandation est d’appliquer le dernier service pack et la mise à jour cumulative la plus récente pour ce service pack. Vous n’avez pas à installer un service pack antérieur avant d’installer le dernier service pack. Utilisez le tableau 1 de l’article suivant pour accéder à des informations supplémentaires sur le dernier service pack et les dernières mises à jour cumulatives.

Comment faire pour déterminer la version, l’édition et le niveau de mise à jour de SQL Server et ses composants
Propriétés

ID d'article : 3107397 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Commentaires