メモリのプロパティ

適用対象: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

要求をすぐに処理できるよう、Analysis Services によって開始時に適度な量のメモリが事前に割り当てられます。 追加のメモリがクエリに割り当てられ、処理のワークロードが増大します。 構成設定を指定すると、メモリが解放されるしきい値を制御することができます。

注意

QueryMemoryLimit は、Power BI に適用される唯一の Memory プロパティです。

既定のメモリ構成

既定の構成では、インスタンスがアイドル状態であっても、各インスタンスは起動時に少量の RAM (40 MB から 50 MB) を割り当てます。 構成設定はインスタンスごとに行われます。 同じハードウェアで表形式インスタンスや多次元インスタンスなどの複数のインスタンスを実行している場合、各インスタンスは、他のインスタンスとは独立して独自のメモリを割り当てます。

設定 説明
LowMemoryLimit 多次元インスタンスで、最初にサーバーが、使用されるオブジェクトと関係なく割り当てられたメモリを解放し始める下限のしきい値。
VertiPaqMemoryLimit テーブルインスタンスで、最初にサーバーが、使用されるオブジェクトと関係なく割り当てられたメモリを解放し始める下限のしきい値。
TotalMemoryLimit 実行中の要求と新しい優先度の高い要求の空き容量を増やすために、Analysis Services がメモリの解放をより積極的に開始する上限しきい値。
HardMemoryLimit Analysis Services がメモリ不足のために、完全に要求を拒否し始める別のしきい値。

プロパティ

1 ~ 100 の値は、 [物理メモリの合計] または [仮想アドレス領域]のどちらか少ない方に対する割合を示します。 100 を超える値はメモリ制限を示します (単位: バイト)。

DefaultPagesCountToReuse

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

HandleIA64AlignmentFaults

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

HardMemoryLimit

インスタンスが、メモリ使用量を減らすために、アクティブなユーザー セッションを積極的に終了し始めるメモリのしきい値を指定します。 終了したすべてのセッションは、メモリ不足によって取り消されたことに関するエラーを受け取ります。 既定値 (0) は、 HardMemoryLimitTotalMemoryLimit とシステムの物理メモリ合計の間の値に設定されることを意味します。システムの物理メモリがプロセスの仮想アドレス領域を超える場合は、 HardMemoryLimitを計算せずに、仮想アドレス空間が使用されます。 この値は、Azure Analysis Servicesでは構成できません。

HeapTypeForObjects

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。 有効な値は次のとおりです。

設定 説明
-1 (既定値) 自動。 エンジンがどれを使用するかを決定します。
0 Windows LFH ヒープ。
1 Analysis Services スロット アロケーター。
3 各オブジェクトには独自の Analysis Services ヒープがあります。
HighMemoryPrice

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

LowMemoryLimit

使用頻度の低いキャッシュなど、優先度の低いオブジェクトのメモリ解放を Analysis Services が開始する最初のしきい値を定義する符号付き 64 ビット倍精度浮動小数点数プロパティ。 メモリを割り当てると、サーバーはこの制限より下のメモリを解放することはありません。 既定値は 65 です。これは、物理メモリまたは仮想アドレス空間の 65% (どちらか少ない方) を超えたらメモリ不足とすることを示します。

MemoryHeapType

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。 SQL Server 2016 SP1 とそれ以降の Analysis Services で有効な値は次のとおりです。

設定 説明
-1 (既定値) 自動。 エンジンがどれを使用するかを決定します。
1 Analysis Services ヒープ。
2 Windows LFH。
5 ハイブリッド アロケーター。 このアロケーターは、 = 16 KB の割り当てに <Windows LFH を使用し、16 KB の割り当てには >AS ヒープを使用します。
6 Intel TBB アロケーター。 SQL Server 2016 SP1 (およびそれ以降) の Analysis Services で使用できます。
MidMemoryPrice

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

MinimumAllocatedMemory

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

PreAllocate

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

QueryMemoryLimit

Power BI、Azure Analysis Services、SQL Server 2019 以降の Analysis Services にのみ適用されます。 クエリ中に使用できるメモリの量を制御する高度なプロパティ。

SQL Server 2019 以降の Analysis Services では、この設定は、クエリ処理中に中間 DAX クエリ結果が作成されるメモリ スプールにのみ適用されます。 MDX クエリには適用されません。

Power BI、Azure Analysis Services、および SQL Server 2022 以降の Analysis Services では、ResourceTrackingEnabledFeature プロパティが有効になっている場合、この設定はメモリ スプールのみに限定されません。 これは、表形式モードでのみ DAX クエリと MDX クエリの両方で使用されるすべてのメモリに適用されます。

100 までのパーセンテージで指定されます。 100 を超える場合はバイト単位です。 値を 0 に設定すると、制限が指定されていないことを意味します。

Azure Analysis Servicesの場合、既定値はプランによって決まります。

プラン Default
D1 80
その他すべて 20
SessionMemoryLimit

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

TotalMemoryLimit

に達すると、サーバーがメモリの割り当てを解除して他の要求用の領域を確保するしきい値を定義します。 この制限に達すると、インスタンスは、期限切れのセッションを終了したり、使用されていない計算をアンロードしたりすることによって、徐々にキャッシュ内のメモリを解放し始めます。 SQL Server Analysis Servicesの場合、既定値は物理メモリまたは仮想アドレス空間の 80% のいずれか小さい方です。 Azure Analysis Servicesの既定値はプランに基づいており、構成できません。 TotalMemoryLimit は、常に HardMemoryLimit より小さくする必要があります。

VertiPaqMemoryLimit

テーブル インスタンスのみの場合、ディスクへのページングを許可していれば、ページングが開始されるメモリ消費レベル (メモリの合計に対する割合) をこのプロパティで指定します。 既定値は 60 です。 メモリ消費量が 60% 未満の場合、ディスクへのページングは実行されません。 このプロパティは、 VertiPaqPagingPolicyPropertyに依存します (ページングを有効にするには 1 に設定する必要があります)。

VertiPaqPagingPolicy

テーブル インスタンスのみの場合、サーバーのメモリが不足したときのページングの動作を指定します。 有効な値は次のとおりです。

設定 説明
0 (Azure Analysis Services と Power BI の既定値) ページングを無効にします。 メモリが足りなくなると、メモリ不足エラーが発生し、処理は失敗します。 ページングを無効にする場合は、サービス アカウントに Windows 特権を付与する必要があります。 手順については 、「サービス アカウントの構成 (Analysis Services)」 を参照してください。
1 (SQL Server Analysis Servicesの既定値) このプロパティを使用すると、オペレーティング システム ページ ファイル (pagefile.sys) を使用してディスクにページングできます。

1 に設定された場合、指定された方法を使用してサーバーがディスクへのページングを試行するので、メモリ制約によって処理が失敗する可能性は低くなります。 VertiPaqPagingPolicy プロパティを設定しても、メモリ エラーが発生しないことが保証されるわけではありません。 以下の状況では、メモリ不足エラーが発生する可能性があります。

  • すべての辞書のための十分なメモリがない。 処理中に、サーバーはメモリ内の各列のディクショナリをロックします。これらすべてが 、VertiPaqMemoryLimit に指定された値を超えることはできません。

  • 処理に対応するための十分な仮想アドレス空間がない。

繰り返し発生するメモリ不足エラーを解決するには、処理を要するデータの量を減らすようにモデルを設計し直すか、コンピューターに物理メモリを追加します。

VirtualMemoryLimit

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

WaitCountIfHighMemory

高度なプロパティであるため、マイクロソフトのサポート下でのみ変更してください。

こちらもご覧ください

Analysis Services のサーバーのプロパティ
Analysis Services インスタンスのサーバー モードの決定