Propriétés de mémoire

S’applique à : SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Analysis Services préalloue une petite quantité de mémoire au démarrage, afin que les requêtes puissent être traitées immédiatement. De la mémoire supplémentaire est allouée à mesure que les charges de travail de requête et de traitement augmentent. En spécifiant des paramètres de configuration, vous pouvez contrôler les seuils auxquels la mémoire est libérée.

Notes

QueryMemoryLimit est la seule propriété Memory qui s’applique à Power BI.

Configuration par défaut de la mémoire

Dans la configuration par défaut, chaque instance alloue une petite quantité de RAM (40 Mo à 50 Mo) au démarrage, même si le instance est inactif. Les paramètres de configuration sont définis par instance. Si vous exécutez plusieurs instances, telles qu’une instance tabulaire et multidimensionnelle sur le même matériel, chaque instance allouera sa propre mémoire indépendamment des autres instances.

Paramètre Description
LowMemoryLimit Pour les instances multidimensionnelles, seuil inférieur auquel le serveur commence tout d’abord à libérer la mémoire allouée aux objets peu fréquemment utilisés.
VertiPaqMemoryLimit Pour les instances tabulaires, seuil inférieur auquel le serveur commence tout d’abord à libérer la mémoire allouée aux objets peu fréquemment utilisés.
TotalMemoryLimit Seuil supérieur auquel Analysis Services commence à libérer de la mémoire de manière plus agressive pour faire de la place aux requêtes en cours d’exécution, ainsi qu’aux nouvelles demandes à haute priorité.
HardMemoryLimit Autre seuil auquel Analysis Services commence à rejeter en bloc les requêtes en raison d’une sollicitation de la mémoire.

Propriétés

Les valeurs comprises entre 1 et 100 représentent des pourcentages de mémoire physique totale ou d' espace d'adressage virtuel, la valeur la plus petite étant retenue. Les valeurs supérieures à 100 représentent les limites de mémoire en octets.

DefaultPagesCountToReuse

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

HandleIA64AlignmentFaults

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

HardMemoryLimit

Spécifie un seuil de mémoire après lequel l'instance ferme de façon intensive les sessions utilisateur actives pour réduire l'utilisation de la mémoire. Toutes les sessions terminées recevront une erreur concernant l’annulation par la pression de la mémoire. La valeur par défaut, zéro (0), signifie que HardMemoryLimit aura une valeur intermédiaire entre TotalMemoryLimit et la mémoire physique totale du système ; si la mémoire physique du système est supérieure à l’espace d’adressage virtuel du processus, l’espace d’adressage virtuel est utilisé à la place pour calculer HardMemoryLimit. Cette valeur n’est pas configurable pour Azure Analysis Services.

HeapTypeForObjects

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft. Les valeurs valides sont les suivantes :

Paramètre Description
-1 (par défaut) Automatique. Le moteur décidera de l’option à utiliser.
0 Segment de mémoire LFH Windows.
1 Allocateur d’emplacement Analysis Services.
3 Chaque objet possède son propre segment de mémoire Analysis Services.
HighMemoryPrice

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

LowMemoryLimit

Propriété de nombre à virgule flottante 64 bits double précision signée qui définit le premier seuil auquel Analysis Services commence à libérer de la mémoire pour les objets de faible priorité, comme un cache rarement utilisé. Une fois la mémoire allouée, le serveur ne libère pas de mémoire en dessous de cette limite. La valeur par défaut est 65, ce qui indique que la limite de mémoire inférieure correspond à 65 % de la mémoire physique ou de l'espace d'adressage virtuel, la valeur inférieure étant applicable.

MemoryHeapType

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft. Les valeurs valides dans SQL Server 2016 SP1 Analysis Services et version ultérieure sont les suivantes :

Paramètre Description
-1 (par défaut) Automatique. Le moteur décidera de l’option à utiliser.
1 Segment de mémoire Analysis Services.
2 LFH Windows.
5 Allocateur hybride. Cet allocateur utilise Windows LFH pour <= 16 Ko d’allocations et le tas AS pour >les allocations de 16 Ko.
6 Allocateur Intel TBB. Disponible dans SQL Server 2016 SP1 Analysis Services (et version ultérieure).
MidMemoryPrice

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

MinimumAllocatedMemory

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

PreAllocate

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

QueryMemoryLimit

S’applique à Power BI, Azure Analysis Services et SQL Server 2019 et versions ultérieures Analysis Services uniquement. Propriété avancée permettant de contrôler la quantité de mémoire qui peut être utilisée pendant une requête.

Dans SQL Server 2019 et versions ultérieures Analysis Services, ce paramètre s’applique uniquement aux pools de mémoire où les résultats de requête DAX intermédiaires sont créés pendant le traitement de la requête. Elle ne s’applique pas aux requêtes MDX.

Dans Power BI, Azure Analysis Services et SQL Server Analysis Services 2022 et versions ultérieures, si la propriété ResourceTrackingEnabledFeature est activée, ce paramètre n’est pas limité uniquement aux pools de mémoire. Il s’applique à toute la mémoire utilisée par les requêtes DAX et MDX en mode tabulaire uniquement.

Spécifié en pourcentage jusqu’à 100. Lorsque plus de 100, il est en octets. La définition d’une valeur 0 signifie qu’aucune limite n’est spécifiée.

Par Azure Analysis Services, la valeur par défaut est déterminée par votre plan.

Plan Default
D1 80
Tous les autres 20
SessionMemoryLimit

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

TotalMemoryLimit

Définit un seuil qui, lorsqu’il est atteint, oblige le serveur à désallouer la mémoire pour faire de la place pour d’autres demandes. Lorsque cette limite est atteinte, l'instance commence lentement à nettoyer la mémoire des caches en fermant les sessions expirées et en déchargeant les calculs non utilisés. Pour SQL Server Analysis Services, la valeur par défaut est 80 % de la mémoire physique ou de l’espace d’adressage virtuel, selon la valeur inférieure. La valeur par défaut pour Azure Analysis Services est basée sur votre plan et n’est pas configurable. TotalMemoryLimit doit toujours être inférieur à HardMemoryLimit.

VertiPaqMemoryLimit

Pour les instances tabulaires uniquement, si la pagination sur le disque est autorisée, cette propriété indique le niveau de la consommation de mémoire (en pourcentage de la mémoire totale) auquel la pagination démarre. La valeur par défaut est 60. Si la consommation de mémoire est inférieure à 60 %, le serveur ne paginera pas sur le disque. Cette propriété dépend de VertiPaqPagingPolicyProperty, qui doit avoir la valeur 1 pour autoriser la pagination.

VertiPaqPagingPolicy

Pour les instances tabulaires uniquement, spécifie le comportement de pagination quand la mémoire du serveur est insuffisante. Les valeurs valides sont les suivantes :

Paramètre Description
0 (par défaut pour Azure Analysis Services et Power BI) Désactive la pagination. Si la mémoire est insuffisante, le traitement échoue avec une erreur de mémoire insuffisante. Si vous désactivez la pagination, vous devez accorder des privilèges Windows au compte de service. Pour obtenir des instructions, consultez Configurer des comptes de service (Analysis Services).
1 (valeur par défaut pour SQL Server Analysis Services) Cette propriété active la pagination sur le disque à l’aide du fichier de page du système d’exploitation (pagefile.sys).

Lorsque la valeur définie est 1, le traitement est moins susceptible d’échouer en raison des contraintes de mémoire, car le serveur tente de paginer sur le disque à l’aide de la méthode spécifiée. La définition de la propriété VertiPaqPagingPolicy ne garantit pas que les erreurs de mémoire ne se produiront pas. Les erreurs de mémoire insuffisante peuvent toujours se produire dans les conditions suivantes :

  • Il n'y a pas assez de mémoire pour tous les dictionnaires. Pendant le traitement, le serveur verrouille les dictionnaires pour chaque colonne en mémoire, et tous ces ensembles ne peuvent pas dépasser la valeur spécifiée pour VertiPaqMemoryLimit.

  • L'espace d'adressage virtuel est insuffisant pour le processus.

Pour résoudre les erreurs persistantes de mémoire insuffisante, vous pouvez reconcevoir le modèle pour réduire la quantité de données à traiter, ou bien ajouter plus de mémoire physique à l'ordinateur.

VirtualMemoryLimit

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

WaitCountIfHighMemory

Propriété avancée que vous ne devez pas modifier, sauf si vous bénéficiez de l’assistance du support technique Microsoft.

Voir aussi

Propriétés de serveur dans Analysis Services
Déterminer le mode serveur d'une instance Analysis Services