Symptômes
Supposez que vous utilisez une instance de Microsoft SQL Server 2016 Analysis Services. Même si de plus en plus d’objets d’étendue globale sont mis en cache, ces caches ne sont jamais nettoyés. Cela risque de provoquer une croissance continue de la mémoire et de terminer le blocage du serveur. Les étendues globales sont mises en cache en fonction de la sécurité requise pour chaque utilisateur. Par conséquent, vous ne rencontrez généralement ce problème que lorsque vous rencontrez l’un des scénarios suivants :
-
Vous avez des expressions dynamiques (par exemple, nom d’utilisateur (), CustomData ()) dans le modèle. Cette opération n’est pas obligatoire pour voir le problème, mais il s’agit d’une cause courante. En présence d’expressions dynamiques, chaque utilisateur unique doit générer sa propre étendue globale unique. Cela a pour effet d’augmenter considérablement le nombre de portées globales qui doivent être créés et mis en cache.
-
Vous avez un modèle complexe qui comporte de nombreuses métadonnées et sécurité. Cela influe sur le coût de la mémoire par objet Scope. Au fur et à mesure de l’augmentation du nombre d’étendues globales mises en cache, l’encombrement mémoire augmente en fonction du coût de la mémoire par objet Scope.
-
Vous avez de nombreux utilisateurs uniques qui se connectent au serveur. Par exemple, PowerBI.com est susceptible de mettre à jour les vignettes dans son tableau de bord pour chaque utilisateur, en temps fréquent. Lorsque c’est le cas, Analysis Services reçoit un grand nombre de connexions et de requêtes pour chaque utilisateur unique, et le nombre de portées globales s’étend et utilise beaucoup de mémoire.
Remarque: après avoir appliqué ce correctif, la version SQL Server sera 13.0.2170.0.
Résolution
Informations sur les mises à jour cumulatives
Pour résoudre ce problème, vous trouverez la mise à jour cumulative suivante pour SQL Server :
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs et les correctifs de sécurité inclus dans la mise à jour cumulative précédente. Consultez les dernières mises à jour cumulatives pour SQL Server :
Solution de contournement
Pour contourner ce problème, exécutez manuellement une commande <ClearCache> XMLA dans la base de données selon une planification appropriée. Cela permet à tous les caches d’étendue globale d’être effacés et de réduire la mémoire. Cette option entraîne des coûts de performance lorsque vous vous connectez la prochaine fois que vous ne serez pas en mesure de réutiliser l’étendue globale mise en cache.
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.
Références
Apprenez-en davantage sur la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.