Udostępnij przez


Właściwości pamięci

Dotyczy: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Usługi Analysis Services wstępnie przydziela niewielką ilość pamięci podczas uruchamiania, dzięki czemu żądania mogą być obsługiwane natychmiast. Dodatkowa pamięć jest przydzielana w miarę zwiększania obciążeń zapytań i przetwarzania. Określając ustawienia konfiguracji, można kontrolować progi, w których jest zwalniana pamięć.

Uwaga / Notatka

QueryMemoryLimit jest jedyną właściwością Memory, która ma zastosowanie do usługi Power BI.

Domyślna konfiguracja pamięci

W ramach konfiguracji domyślnej każde wystąpienie przydziela niewielką ilość pamięci RAM (od 40 MB do 50 MB) podczas uruchamiania, nawet jeśli wystąpienie jest bezczynne. Ustawienia konfiguracji są na wystąpienie. Jeśli korzystasz z wielu wystąpień, takich jak wystąpienie tabelaryczne i wielowymiarowe na tym samym sprzęcie, każde wystąpienie przydzieli własną pamięć niezależnie od innych wystąpień.

Setting Description
LowMemoryLimit W przypadku wystąpień wielowymiarowych niższy próg, na którym serwer po raz pierwszy rozpoczyna zwalnianie pamięci przydzielonej do rzadko używanych obiektów.
VertiPaqMemoryLimit W przypadku wystąpień tabelarycznych niższy próg, przy którym serwer po raz pierwszy rozpoczyna zwalnianie pamięci przydzielonej do rzadko używanych obiektów.
TotalMemoryLimit Górny próg, przy którym usługi Analysis Services zaczynają zwalniać pamięć bardziej agresywnie, aby zwolnić miejsce na żądania, które są w wykonaniu, a także nowe żądania o wysokim priorytcie.
HardMemoryLimit Kolejny próg, w którym usługi Analysis Services zaczynają odrzucać żądania wprost ze względu na wykorzystanie pamięci.

Właściwości

Wartości z zakresu od 1 do 100 reprezentują procent całkowitej pamięci fizycznej lub wirtualnej przestrzeni adresowej, w zależności od tego, która z tych wartości jest mniejsza. Wartości powyżej 100 reprezentują limity pamięci w bajtach.

DefaultPagesCountToReuse

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

HandleIA64AlignmentFaults

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

HardMemoryLimit

Określa próg pamięci, po którym wystąpienie agresywnie przerywa aktywne sesje użytkownika w celu zmniejszenia użycia pamięci. Wszystkie zakończone sesje będą otrzymywać komunikat o błędzie podczas anulowania przez wykorzystanie pamięci. Wartość domyślna, zero (0), oznacza, że właściwość HardMemoryLimit zostanie ustawiona na wartość w połowie drogi między wartością TotalMemoryLimit a całkowitą pamięcią fizyczną systemu; jeśli pamięć fizyczna systemu jest większa niż wirtualna przestrzeń adresowa procesu, zamiast tego zostanie użyta wirtualna przestrzeń adresowa do obliczenia HardMemoryLimit. Ta wartość nie jest konfigurowalna dla usług Azure Analysis Services.

HeapTypeForObjects

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft. Prawidłowe wartości są następujące:

Setting Description
-1 (ustawienie domyślne) Automatyczne. Silnik zdecyduje, który z nich ma być używany.
0 Sterta systemu Windows LFH.
1 Alokator miejsc usług Analysis Services.
3 Każdy obiekt ma własną stertę usług Analysis Services.
HighMemoryPrice

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

LowMemoryLimit

Podpisana właściwość 64-bitowej liczby zmiennoprzecinkowych o podwójnej precyzji, która definiuje pierwszy próg, przy którym usługi Analysis Services zaczynają zwalniać pamięć dla obiektów o niskim priorytcie, takich jak rzadko używana pamięć podręczna. Po przydzieleniu pamięci serwer nie zwalnia pamięci poniżej tego limitu. Wartość domyślna to 65; co wskazuje, że limit małej ilości pamięci wynosi 65% pamięci fizycznej lub wirtualnej przestrzeni adresowej, w zależności od tego, która z tych wartości jest mniejsza.

MemoryHeapType

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft. Prawidłowe wartości w programie SQL Server 2016 SP1 i nowszych usługach Analysis Services są następujące:

Setting Description
-1 (ustawienie domyślne) Automatyczne. Silnik zdecyduje, który z nich ma być używany.
1 HeAP usług Analysis Services.
2 Windows LFH.
5 Alokator hybrydowy. Ten alokator będzie używać systemu Windows LFH dla <= 16 KB alokacji i sterty AS dla >alokacji 16 KB.
6 Alokator Intel TBB. Dostępne w usługach SQL Server 2016 SP1 (i nowszych).
MidMemoryPrice

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

MinimumAllocatedMemory

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

Przydział wstępny

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

QueryMemoryLimit

Dotyczy tylko usług Power BI, Azure Analysis Services i SQL Server 2019 i nowszych. Zaawansowana właściwość do kontrolowania ilości pamięci, która może być używana podczas wykonywania zapytania.

W programie SQL Server 2019 i nowszych usługach Analysis Services to ustawienie dotyczy tylko pamięci, w których podczas przetwarzania zapytań są tworzone pośrednie wyniki zapytania języka DAX. Nie ma zastosowania do zapytań MDX.

W usługach Power BI, Azure Analysis Services i SQL Server 2022 i nowszych usługach Analysis Services, jeśli właściwość ResourceTrackingEnabledFeature jest włączona, to ustawienie nie jest ograniczone tylko do pamięci. Dotyczy to całej pamięci używanej zarówno przez zapytania JĘZYKA DAX, jak i MDX tylko w trybie tabelarycznym.

Określony w procentach do 100. Gdy więcej niż 100, jest w bajtach. Ustawienie wartości 0 oznacza, że nie określono żadnego limitu.

W przypadku usług Azure Analysis Services wartość domyślna jest określana przez plan.

Plan Default
D1 80
Wszystkie pozostałe 20
SessionMemoryLimit

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

TotalMemoryLimit

Definiuje próg, który jest osiągany, powoduje, że serwer ma cofać przydział pamięci, aby zapewnić miejsce na inne żądania. Po osiągnięciu tego limitu wystąpienie zacznie powoli usuwać pamięć z pamięci podręcznej, zamykając wygasłe sesje i zwalniając nieużywane obliczenia. W przypadku usług SQL Server Analysis Services wartość domyślna to 80% pamięci fizycznej lub wirtualnej przestrzeni adresowej, w zależności od tego, która z tych wartości jest mniejsza. Wartość domyślna dla usług Azure Analysis Services jest oparta na planie i nie można jej konfigurować. Wartość TotalMemoryLimit musi być zawsze mniejsza niż HardMemoryLimit.

VertiPaqMemoryLimit

Tylko w przypadku wystąpień tabelarycznych, jeśli stronicowanie na dysku jest dozwolone, ta właściwość określa poziom zużycia pamięci (jako procent całkowitej pamięci), przy którym rozpoczyna się stronicowanie. Wartość domyślna to 60. Jeśli zużycie pamięci jest mniejsze niż 60 procent, serwer nie będzie stronicować na dysku. Ta właściwość zależy od właściwości VertiPaqPagingPolicyProperty, która musi być ustawiona na 1 w celu stronicowania.

VertiPaqPagingPolicy

Tylko w przypadku wystąpień tabelarycznych określa zachowanie stronicowania w przypadku, gdy serwer działa mało pamięci. Prawidłowe wartości są następujące:

Setting Description
0 (ustawienie domyślne dla usług Azure Analysis Services i Power BI) Wyłącza stronicowanie. Jeśli pamięć jest niewystarczająca, przetwarzanie kończy się niepowodzeniem z powodu błędu braku pamięci. Jeśli wyłączysz stronicowanie, musisz przyznać uprawnienia systemu Windows do konta usługi. Aby uzyskać instrukcje, zobacz Konfigurowanie kont usług (Analysis Services).
1 (ustawienie domyślne dla usług SQL Server Analysis Services) Ta właściwość umożliwia stronicowanie na dysku przy użyciu pliku stronicowania systemu operacyjnego (pagefile.sys).

W przypadku ustawienia wartości 1 przetwarzanie prawdopodobnie nie powiedzie się z powodu ograniczeń pamięci, ponieważ serwer spróbuje stronicować dysk przy użyciu określonej metody. Ustawienie właściwości VertiPaqPagingPolicy nie gwarantuje, że błędy pamięci nigdy się nie pojawią. Błędy braku pamięci mogą nadal występować w następujących warunkach:

  • Za mało pamięci dla wszystkich słowników. Podczas przetwarzania serwer blokuje słowniki dla każdej kolumny w pamięci, a wszystkie te razem nie mogą być większe niż wartość określona dla VertiPaqMemoryLimit.

  • Nie ma wystarczającej wirtualnej przestrzeni adresowej, aby uwzględnić ten proces.

Aby rozwiązać trwałe błędy braku pamięci, możesz spróbować przeprojektować model, aby zmniejszyć ilość danych, które wymagają przetwarzania, lub dodać więcej pamięci fizycznej do komputera.

VirtualMemoryLimit

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

WaitCountIfHighMemory

Zaawansowana właściwość, której nie należy zmieniać, z wyjątkiem wskazówek pomocy technicznej firmy Microsoft.

Zobacz także

Właściwości serwera w usługach Analysis Services
Określanie trybu serwera instancji usług Analysis Services