Symptômes
Lorsque vous essayez d’exécuter plusieurs requêtes volumineuses en même temps dans Microsoft SQL Server 2014, certaines requêtes peuvent attendre RESOURCE_SEMAPHORE_QUERY_COMPILE. Une seule requête nécessitant plus de mémoire que le seuil de grande passerelle (tel que fourni par la sortie de la commande DBCC MEMORYSTATUS) pour la compilation peut être exécutée, même si le serveur dispose de suffisamment de mémoire disponible.
Remarque : il s’agit d’un comportement attendu. Toutefois, dans les systèmes de traitement par lots volumineux tels qu’un entrepôt de données, cela peut réduire les performances dans l’exécution simultanée de nombreuses requêtes.
Résolution
Informations sur les mises à jour cumulatives
Le problème a été résolu pour la première fois dans la mise à jour cumulative suivante de SQL Server.
Recommandation : Installer la dernière mise à jour cumulative pour SQL Server
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et tous les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Nous vous recommandons de télécharger et d’installer les dernières mises à jour cumulatives pour SQL Server :
- Dernière mise à jour cumulative pour SQL Server 2014 SP1
- Dernière mise à jour cumulative pour SQL Server 2014
Ce correctif introduit un nouvel indicateur de trace -T 6498. Cet indicateur de trace permet à plusieurs compilations de requêtes volumineuses d’accéder à la grande passerelle lorsque la mémoire disponible est suffisante. Elle repose sur 80 % de mémoire cible de SQL Server et permet une compilation de requêtes volumineuses par tranche de 25 Go de mémoire. Par exemple, cela permet deux compilations de requêtes volumineuses sur un ordinateur à mémoire cible de 64 Go.
Après l’application de ce correctif logiciel, vous devez activer l’indicateur de trace -T 6498 pour activer le nouveau comportement.
Remarque Si vous activez l’indicateur de trace à l’aide de la commande DBCC TRACEON, vous n’avez pas besoin de redémarrer le serveur pour que l’indicateur de trace prenne effet. Toutefois, l’application de la nouvelle configuration de grande passerelle peut prendre 10 secondes.
Un correctif logiciel pris en charge est disponible auprès de Microsoft. Toutefois, il est conçu uniquement pour corriger le problème décrit dans cet article. N’appliquez ce correctif qu’aux systèmes sur lesquels vous rencontrez ce problème.
Si le correctif logiciel est disponible en téléchargement, une section « Téléchargement de correctif logiciel disponible » figure en haut du présent article de la Base de connaissances. Si cette section est absente, demandez le correctif logiciel auprès du Support technique et Service clientèle Microsoft.
Remarque Si des problèmes supplémentaires surviennent ou si des procédures de dépannage sont nécessaires, vous devrez peut-être créer une demande de service distincte. Les coûts habituels du support s'appliqueront aux autres questions et problèmes du support non directement liés au correctif logiciel en question. Pour obtenir la liste complète des numéros de téléphone des services d’assistance technique Microsoft ou pour créer une demande de service distincte, reportez-vous au site web de Microsoft à l’adresse suivante :
/contactus/ ?ws=support Remarque Le formulaire « Téléchargement de correctif logiciel disponible » affiche les langues pour lesquelles le correctif logiciel est disponible. Si votre langue n'est pas répertoriée, cela signifie qu'aucun correctif logiciel n'est disponible pour cette langue.
Informations supplémentaires
CauseSQL Server utilise les passerelles de compilation pour limiter les compilations. L’architecture de passerelle est un moyen pour SQL Server de contrôler l’utilisation de la mémoire pour la compilation des requêtes entrantes. Il existe trois passerelles : petite, moyenne et grande.
Pour plus d’informations sur l’utilisation de la commande DBCC MEMORYSTATUS pour surveiller l’utilisation de la mémoire, consultez l’article KB 907877 : Comment utiliser la commande DBCC MEMORYSTATUS pour surveiller l’utilisation de la mémoire sur SQL Server 2005.
État
Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».