Microsoft distribue les correctifs Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ou Microsoft SQL Server 2012 dans un fichier téléchargeable. Dans la mesure où les correctifs sont cumulatifs, chaque nouvelle version contient tous les correctifs et toutes les mises à jour de sécurité qui ont été incluses dans l’ancienne version de mise à jour de SQL Server 2008 R2 Service Pack 1 (SP1) ou Microsoft SQL Server 2012.
Symptômes
Prenons l’exemple du scénario suivant :
-
Vous effectuez une mise à niveau de Microsoft SQL Server 2005 vers Microsoft SQL Server 2008 ou Microsoft SQL Server 2008 R2 ou Microsoft SQL Server 2012.
-
Vous exécutez une requête qui utilise la procédure stockée sp_cursoropen , puis spécifiez le paramètre RowCount pour extraire les premières lignes d’un tableau.
Dans ce scénario, les performances peuvent être plus lentes que si vous exécutez la même requête dans SQL Server 2005.
Cause
Ce problème se produit car l’optimiseur de requête utilise un plan de curseur statique au lieu d’un plan de curseur dynamique. Pour un plan de curseur statique, SQL Server récupère toutes les lignes et les insère dans la table Work du curseur. Toutefois, pour un plan de curseur dynamique, SQL Server récupère uniquement les lignes nécessaires.
Résolution
Informations sur les mises à jour cumulatives
SQL Server 2012
Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 1 pour SQL Server 2012. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2679368 Package de mise à jour cumulative 1 pour SQL Server 2012Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans l’ancienne version du correctif SQL Server 2012. Microsoft vous recommande d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2692828 Builds SQL Server 2012 publiées après la sortie de SQL Server 2012 Vous devez appliquer un correctif SQL Server 2012 à une installation de SQL Server 2012.
Package de mise à jour cumulative 5 pour SQL Server 2008 R2 SP1
Après avoir appliqué ce correctif, activez l’indicateur de suivi 4199. Le correctif de ce problème a été émis pour la première fois dans la mise à jour cumulative 5. Pour plus d’informations sur la façon d’obtenir ce package de mise à jour cumulative pour SQL Server 2008 R2 SP1, cliquez sur le numéro ci-dessous pour consulter l’article de la base de connaissances Microsoft :
2659694 Package de mise à jour cumulative 5 pour SQL Server 2008 R2 SP1Remarque Dans la mesure où les builds sont cumulatives, chaque nouvelle version du correctif contient tous les correctifs et les correctifs de sécurité inclus dans la version précédente du correctif SQL Server 2008 R2 SP1. Nous vous recommandons d’appliquer la version de correctif la plus récente qui contient ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
2567616 Builds SQL Server 2008 R2 publiées après la sortie de SQL Server 2008 R2 SP1
Solution de contournement
Pour contourner ce problème, ajoutez le Conseil de requête rapide à la requête.
Informations supplémentaires
Pour plus d’informations sur l’utilisation des indicateurs de requête, consultez le site Web MSDN suivant :
Informations générales sur l’utilisation des indicateurs de requêtePour plus d’informations sur l’indicateur de suivi 4199, consultez le site Web suivant :
Statut
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.