Proprietà della memoria

Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Analysis Services pre-alloca una quantità di memoria modesta all'avvio in modo che le richieste possano essere gestite immediatamente. La memoria aggiuntiva viene allocata come query e i carichi di lavoro di elaborazione aumentano. Tramite la specifica delle impostazioni di configurazione è possibile controllare le soglie di rilascio della memoria.

Nota

QueryMemoryLimit è l'unica proprietà Memory che si applica a Power BI.

Configurazione di memoria predefinita

Nella configurazione predefinita ogni istanza alloca una piccola quantità di RAM (da 40 MB a 50 MB) all'avvio, anche se l'istanza è inattiva. Le impostazioni di configurazione sono per istanza. Se si eseguono più istanze, ad esempio un'istanza tabulare e multidimensionale nello stesso hardware, ogni istanza allocherà la propria memoria indipendentemente da altre istanze.

Impostazione Descrizione
LowMemoryLimit Per le istanze multidimensionali, una soglia inferiore a cui il server inizia prima il rilascio della memoria allocata agli oggetti usati raramente.
VertiPaqMemoryLimit Per le istanze tabulari, una soglia inferiore a cui il server inizia prima il rilascio della memoria allocata agli oggetti usati raramente.
TotalMemoryLimit Soglia superiore a cui Analysis Services inizia a rilasciare la memoria in modo più aggressivo per rendere più aggressiva la spazio per le richieste in esecuzione e nuove richieste con priorità elevata.
HardMemoryLimit Un'altra soglia a cui Analysis Services inizia a rifiutare immediatamente le richieste a causa dell'utilizzo elevato di memoria.

Proprietà

I valori compresi tra 1 e 100 rappresentano le percentuali di memoria fisica totale o spazio degli indirizzi virtuali, a seconda di quale dei due elementi sia inferiore. I valori maggiori di 100 rappresentano limiti di memoria in byte.

DefaultPagesCountToReuse

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

HandleIA64AlignmentFaults

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

HardMemoryLimit

Specifica una soglia di memoria superata la quale le sessioni utente attive verranno immediatamente terminate dall'istanza per ridurre l'utilizzo della memoria. Tutte le sessioni terminate riceveranno un errore relativo all'annullamento della pressione di memoria. Con il valore predefinito, ovvero zero (0), il limite HardMemoryLimit sarà impostato su un valore mediano tra TotalMemoryLimit e la memoria fisica totale del sistema. Se quest'ultima è maggiore dello spazio di indirizzo virtuale del processo, per calcolare il limite HardMemoryLimitsarà invece usato lo spazio di indirizzo virtuale. Questo valore non è configurabile per Azure Analysis Services.

HeapTypeForObjects

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft. I valori validi sono i seguenti:

Impostazione Descrizione
-1 (Impostazione predefinita) Automatico. Il motore stabilirà il valore da usare.
0 Heap LFH Windows.
1 Allocatore slot Analysis Services.
3 Ogni oggetto ha un proprio heap Analysis Services.
HighMemoryPrice

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

LowMemoryLimit

Proprietà numero a virgola mobile a 64 bit con precisione doppia che definisce la prima soglia in cui Analysis Services inizia a rilasciare memoria per oggetti con priorità bassa, ad esempio una cache usata raramente. Dopo l'allocazione della memoria, il server non rilascia memoria al di sotto di questo limite. Il valore predefinito è 65 e indica che il limite inferiore della memoria è il 65% della memoria fisica o dello spazio di indirizzo virtuale, a seconda di quale dei due elementi sia inferiore.

MemoryHeapType

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft. I valori validi in SQL Server 2016 SP1 e versioni successive di Analysis Services sono i seguenti:

Impostazione Descrizione
-1 (Impostazione predefinita) Automatico. Il motore stabilirà il valore da usare.
1 Heap Analysis Services.
2 LFH Windows.
5 Allocatore ibrido. Questo allocatore userà Windows LFH per = 16 KB allocazioni e l'heap AS per <>le allocazioni di 16 KB.
6 Allocatore Intel TBB. Disponibile in SQL Server 2016 SP1 e versioni successive di Analysis Services.
MidMemoryPrice

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

MinimumAllocatedMemory

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

PreAllocate

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

QueryMemoryLimit

Si applica solo a Power BI, Azure Analysis Services e SQL Server 2019 e versioni successive di Analysis Services. Proprietà avanzata per controllare la quantità di memoria che può essere usata durante una query.

In SQL Server 2019 e versioni successive di Analysis Services, questa impostazione si applica solo agli spool di memoria in cui vengono creati i risultati delle query DAX intermedi durante l'elaborazione delle query. Non si applica alle query MDX.

In Power BI, Azure Analysis Services e SQL Server 2022 e versioni successive di Analysis Services, se la proprietà ResourceTrackingEnabledFeature è abilitata, questa impostazione non è limitata solo agli spool di memoria. Si applica a tutta la memoria utilizzata dalle query DAX e MDX solo in modalità tabulare.

Specificato in percentuale fino a 100. Quando più di 100, è in byte. Se si imposta un valore pari a 0, non viene specificato alcun limite.

Per Azure Analysis Services, il valore predefinito è determinato dal piano.

Piano Predefinito
D1 80
Tutti gli altri 20
SessionMemoryLimit

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

TotalMemoryLimit

Definisce una soglia che, quando raggiunta, determina la de-allocazione della memoria del server per rendere disponibile la spazio per altre richieste. Quando viene raggiunto questo limite, verrà avviata la cancellazione della memoria delle cache da parte dell'istanza, chiudendo le sessioni scadute e scaricando i calcoli inusati. Per SQL Server Analysis Services, il valore predefinito è il 80% della memoria fisica o dello spazio indirizzi virtuale, che tuttavia è minore. Il valore predefinito per Azure Analysis Services è basato sul piano e non è configurabile. TotalMemoryLimit deve sempre essere minore di HardMemoryLimit.

VertiPaqMemoryLimit

Solo per le istanze tabulari, se il paging su disco è consentito, questa proprietà consente di specificare il livello di utilizzo di memoria (come percentuale della memoria totale) da cui avrà inizio il paging. Il valore predefinito è 60. Se il consumo di memoria è inferiore al 60%, il server non eseguirà il paging su disco. Questa proprietà dipende da VertiPaqPagingPolicyPropertyche deve essere impostata su 1 affinché si verifichi il paging.

VertiPaqPagingPolicy

Solo per le istanze tabulari, specifica il comportamento di paging nel caso in cui la memoria del server sia insufficiente. I valori validi sono i seguenti:

Impostazione Descrizione
0 (impostazione predefinita per Azure Analysis Services e Power BI) Disabilita il paging. Se la memoria è insufficiente, l'elaborazione ha esito negativo e provoca un errore memoria insufficiente. Se si disabilita il paging, è necessario concedere i privilegi di Windows all'account del servizio. Per istruzioni, vedere Configurare gli account del servizio (Analysis Services).
1 (impostazione predefinita per SQL Server Analysis Services) Questa proprietà consente il paging su disco usando il file di pagina del sistema operativo (pagefile.sys).

Quando è impostata su 1, è meno probabile che l'elaborazione non venga completata a causa di limitazioni di memoria perché il server tenterà di eseguire il paging su disco usando il metodo specificato. L'impostazione della proprietà VertiPaqPagingPolicy non garantisce che non si verificheranno mai gli errori della memoria. Gli errori di memoria insufficiente si possono comunque verificare nelle condizioni seguenti:

  • Non c'è abbastanza memoria per tutti i dizionari. Durante l'elaborazione, il server blocca i dizionari per ogni colonna in memoria e tutti questi elementi non possono essere più del valore specificato per VertiPaqMemoryLimit.

  • Lo spazio dell'indirizzo virtuale è insufficiente per il processo.

Per risolvere gli errori di memoria insufficiente persistenti è possibile riprogettare il modello per ridurre la quantità di dati che devono essere elaborati oppure è possibile aggiungere più memoria fisica al computer.

VirtualMemoryLimit

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

WaitCountIfHighMemory

Proprietà avanzata che deve essere modificata solo sotto la supervisione del servizio di supporto tecnico Microsoft.

Vedi anche

Proprietà server in Analysis Services
Determinare la modalità server di un'istanza di Analysis Services