KB3074425 - CORRECTIF : des attentes CMEMTHREAD se produisent lorsque vous exécutez de nombreuses requêtes ad hoc dans SQL Server 2012 ou SQL Server 2014

S’applique à
SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Symptômes

Supposons que vous avez de nombreuses statistiques et tables et que les tables contiennent de nombreuses colonnes dans une base de données Microsoft SQL Server 2012 ou SQL Server 2014. Lorsque vous exécutez de nombreuses requêtes ad hoc pour récupérer des données à partir de ces tables simultanément, vous pouvez rencontrer des attentes CMEMTHREAD pendant l’exécution.

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 :

      

Informations supplémentaires

Lorsque vous compilez ou recompilez une requête dans SQL Server 2012, le moteur doit obtenir les entrées de l’histogramme statistique. Nous devons effectuer une analyse de la table système, puis charger l’histogramme spécifique des tables impliquées dans la mémoire ou le cache. Ces entrées de la table système (pour les statistiques) sont stockées dans le cache de la table système (CACHESTORE_SYSTEMROWSET). L’objet de mémoire utilisé pour créer ces entrées dans le cache n’est pas partitionné et est global.

Par conséquent, si des allocations de mémoire simultanées sont effectuées au cours de cette opération, vous rencontrerez des attentes CMEMTHREAD sur cet objet mémoire. Cela se produit généralement lorsque vous soumettez un grand nombre de requêtes qui nécessitent une compilation ou une recompilation.

Ce correctif logiciel modifie l’objet de mémoire global à partitionner afin que les allocations de mémoire simultanées qui utilisent le cache de la table système ne rencontrent pas de conflits et que les attentes du CMEMTHREAD ne soient pas rencontrées.

Pour plus d’informations sur ce problème similaire, consultez l’article 3026082 de la Base de connaissances : CORRECTIF : SOS_CACHESTORE contention de verrouillage tournant sur le cache de l’ensemble de lignes de table système entraîne une utilisation élevée du processeur en SQL Server 2012 ou 2014.

État

Microsoft a confirmé qu’il s’agissait d’un problème dans les produits Microsoft répertoriés dans la section « S’applique à ».