Problème de performances d’écriture différée lorsque la sécurité des cellules est activée dans SQL Server Analysis Services

Cet article vous aide à contourner le problème de performances d’écriture différée qui se produit lorsque la sécurité des cellules est activée dans SQL Server Analysis Services.

Version d’origine du produit : SQL Server 2012 Analysis Services
Numéro de la base de connaissances d’origine : 2747616

Symptômes

Supposons que vous exécutez Microsoft SQL Server Analysis Services (SSAS) sous un rôle pour lequel la sécurité des cellules est activée. Lorsque vous essayez d’exécuter une instruction MDX (UPDATE CUBE Multidimensional Expressions), l’exécution de l’instruction peut prendre plus de temps que pour un rôle pour lequel la sécurité de cellule n’est pas activée.

Cause

Ce comportement est inhérent au produit. Lorsque la sécurité des cellules est activée, le moteur Analysis Services exécute les requêtes en mode cellule par cellule. Si l’opération d’écriture différée effectue l’allocation à un niveau élevé, l’espace des cellules de niveau feuille sera grand.

Remarque

L’espace n’est pas le nombre de lignes dans la table de faits. L’espace est l’espace de jointure croisée complet de tous les attributs de granularité de dimension. L’énumération de ces cellules une par une prend beaucoup de temps afin de case activée la sécurité des cellules.

Solution de contournement

Pour contourner ce problème, appliquez l’une des méthodes ci-dessous.

  • Méthode 1

    Placez les mesures qui doivent être sécurisées dans un cube distinct et implémentez la sécurité d’écriture au niveau du cube sous votre rôle.

    Remarque

    Les performances lorsque vous utilisez cette méthode sont aussi rapides que lorsque la requête s’exécute sous un rôle d’administrateur. Toutefois, la conception de votre cube devient complexe et vous devez créer des cubes virtuels pour utiliser des groupes de mesures liés afin de retourner les différentes mesures dans une seule requête MDX. En outre, lorsque vous effectuez l’opération d’écriture différée, vous devez créer une requête MDX qui utilise le nom de cube correct en fonction de la mesure d’écriture différée.

  • Méthode 2

    Effectuez l’opération d’écriture différée au niveau de granularité le plus bas d’un membre donné. Vous ne pouvez pas allouer pour de nombreux membres de granularité détaillés.

    Remarque

    Vous devrez peut-être créer des membres factices dans des tables de dimension marqués comme membres d’ajustement dans chaque dimension, pour prendre en charge l’opération d’écriture différée.