Propriedades de memória

Aplica-se a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

O Analysis Services aloca previamente um volume modesto de memória na inicialização para que solicitações possam ser manipuladas imediatamente. Mais memória é alocada como consulta e as cargas de trabalho de processamento aumentam. Ao especificar definições de configuração, você pode controlar os limites nos quais a memória é liberada.

Observação

QueryMemoryLimit é a única propriedade Memory que se aplica ao Power BI.

Configuração de memória padrão

Na configuração padrão, cada instância aloca uma pequena quantidade de RAM (40 MB a 50 MB) na inicialização, mesmo que a instância esteja ociosa. As configurações são por instância. Se você estiver executando várias instâncias, como uma instância tabular e multidimensional no mesmo hardware, cada instância alocará sua própria memória independentemente de outras instâncias.

Configuração Descrição
LowMemoryLimit Para instâncias multidimensionais, um limite inferior em que o servidor começa primeiramente a liberar a memória alocada a objetos usados com pouca frequência.
VertiPaqMemoryLimit Para instâncias tabulares, um limite inferior em que o servidor começa primeiramente a liberar a memória alocada a objetos usados com pouca frequência.
TotalMemoryLimit Um limite superior no qual o Analysis Services começa a liberar memória de forma mais agressiva para abrir espaço para solicitações que estão em execução, bem como novas solicitações de alta prioridade.
HardMemoryLimit Outro limite em que o Analysis Services começa a rejeitar solicitações abertamente devido à pressão de memória.

Propriedades

Os valores entre 1 e 100 representam percentuais da Memória Física Total ou do Espaço de Endereço Virtual, o que for menor. Os valores acima de 100 representam limites de memória em bytes.

DefaultPagesCountToReuse

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

HandleIA64AlignmentFaults

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

HardMemoryLimit

Especifica um limite de memória depois do qual a instância finaliza sessões de usuário ativas agressivamente para reduzir o uso da memória. Todas as sessões encerradas receberão um erro sobre o cancelamento por pressão de memória. O valor padrão, 0 (zero), significa que HardMemoryLimit será definido como um valor entre TotalMemoryLimit e a memória física total do sistema; se a memória física do sistema for maior que o espaço de endereço virtual do processo, o espaço de endereço virtual será usado para calcular HardMemoryLimit. Esse valor não é configurável para Azure Analysis Services.

HeapTypeForObjects

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft. Estes são os valores válidos:

Configuração Descrição
-1 (padrão) Automático. O mecanismo decidirá qual delas usar.
0 Heap LFH do Windows.
1 Alocador de slot do Analysis Services.
3 Cada objeto tem seu próprio Heap do Analysis Services.
HighMemoryPrice

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

LowMemoryLimit

Uma propriedade de número de ponto flutuante de precisão dupla de 64 bits assinada que define o primeiro limite no qual o Analysis Services começa a liberar memória para objetos de baixa prioridade, como um cache usado com pouca frequência. Depois que a memória é alocada, o servidor não libera a memória abaixo desse limite. O valor padrão é 65; o que indica que o limite de memória baixo é 65% de memória física ou o espaço de endereço virtual, o que for menor.

MemoryHeapType

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft. Os valores válidos no SQL Server 2016 SP1 e posterior do Analysis Services são os seguintes:

Configuração Descrição
-1 (padrão) Automático. O mecanismo decidirá qual delas usar.
1 HEAP do Analysis Services.
2 LFH do Windows.
5 Alocador híbrido. Esse alocador usará o Windows LFH para <= alocações de 16 KB e o Heap do AS para >alocações de 16 KB.
6 Alocador TBB Intel. Disponível no Analysis Services do SQL Server 2016 SP1 (e posterior).
MidMemoryPrice

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

MinimumAllocatedMemory

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

PreAllocate

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

QueryMemoryLimit

Aplica-se apenas ao Power BI, Azure Analysis Services e SQL Server 2019 e posteriores do Analysis Services. Uma propriedade avançada para controlar a quantidade de memória que pode ser usada durante uma consulta.

No SQL Server 2019 e posteriores do Analysis Services, essa configuração se aplica somente a spools de memória em que os resultados intermediários da consulta DAX são criados durante o processamento da consulta. Ele não se aplica a consultas MDX.

No Power BI, Azure Analysis Services e SQL Server 2022 e posteriores do Analysis Services, se a propriedade ResourceTrackingEnabledFeature estiver habilitada, essa configuração não se limitará apenas aos spools de memória. Aplica-se a toda a memória utilizada por consultas DAX e MDX somente no modo tabular.

Especificado em percentual de até 100. Quando mais de 100, está em bytes. Definir um valor de 0 significa que nenhum limite é especificado.

Para Azure Analysis Services, o valor padrão é determinado pelo seu plano.

Plano Padrão
D1 80
Todos os outros 20
SessionMemoryLimit

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

TotalMemoryLimit

Define um limite que, quando atingido, faz com que o servidor desaloque a memória para abrir espaço para outras solicitações. Quando este limite é atingido, a instância começa lentamente a limpar a memória de cache fechando sessões expiradas e descarregando cálculos não usados. Para SQL Server Analysis Services, o valor padrão é 80% da memória física ou do espaço de endereço virtual, o que for menor. O valor padrão para Azure Analysis Services é baseado em seu plano e não é configurável. TotalMemoryLimit sempre deve ser menor que HardMemoryLimit.

VertiPaqMemoryLimit

Apenas para instâncias tabulares, se for permitido chamar o disco, esta propriedade especificará o nível de consumo de memória (como um percentual de memória total) no qual a paginação começará. O padrão é 60. Se o consumo de memória for menos que 60 por cento, o servidor não paginará para o disco. Esta propriedade depende do VertiPaqPagingPolicyProperty, que deve ser definido como 1 para que a paginação ocorra.

VertiPaqPagingPolicy

Apenas para instâncias tabulares, especifica o comportamento de paginação, caso o servidor fique com pouca memória. Estes são os valores válidos:

Configuração Descrição
0 (padrão para Azure Analysis Services e Power BI) Desabilita a paginação. Se a memória for insuficiente, o processamento falhará com um erro de memória insuficiente. Se você desabilitar a paginação, será preciso conceder privilégios do Windows à conta de serviço. Consulte Configurar contas de serviço (Analysis Services) para obter instruções.
1 (padrão para SQL Server Analysis Services) Essa propriedade habilita a paginação para o disco usando o arquivo de página do sistema operacional (pagefile.sys).

Quando definido como 1, o processamento apresenta menor probabilidade de falhar devido a restrições de memória, pois o servidor tentará paginar para o disco usando o método especificado por você. A definição da propriedade VertiPaqPagingPolicy não garante que erros de memória nunca ocorrerão. Erros de falta de memória ainda podem ocorrer sob as seguintes condições:

  • Não há bastante memória para todos os dicionários. Durante o processamento, o servidor bloqueia os dicionários de cada coluna na memória e todos eles juntos não podem ser mais do que o valor especificado para VertiPaqMemoryLimit.

  • Não há espaço de endereço virtual insuficiente para acomodar o processo.

Para resolver erros de falta de memória persistentes, você pode tentar reprojetar o modelo para reduzir a quantidade de dados que precisa de processamento ou pode adicionar mais memória física ao computador.

VirtualMemoryLimit

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

WaitCountIfHighMemory

Uma propriedade avançada que não deve ser alterada, exceto sob orientação do suporte da Microsoft.

Confira também

Propriedades do servidor no Analysis Services
Determina o Modo de Servidor de uma instância do Analysis Services.