記憶體屬性

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

Analysis Services 會在啟動時預先配置少量的記憶體,以便立即處理要求。 隨著查詢和處理工作負載的增加,會配置額外的記憶體。 指定組態設定,即可控制釋放記憶體的臨界值。

注意

QueryMemoryLimit 是唯一適用于 Power BI 的 Memory 屬性。

預設記憶體組態

在預設設定下,即使實例閒置,每個實例都會在啟動時配置少量 RAM (40 MB 到 50 MB) 。 組態設定是每個實例。 如果您要在相同硬體上執行多個實例,例如表格式和多維度實例,則每個實例都會獨立于其他實例之外配置自己的記憶體。

設定 Description
LowMemoryLimit 針對多維度執行個體,伺服器第一次開始釋出配置給不常使用物件之記憶體的較低臨界值。
VertiPaqMemoryLimit 針對表格式執行個體,伺服器第一次開始釋出配置給不常使用物件之記憶體的較低臨界值。
TotalMemoryLimit Analysis Services 開始更積極釋放記憶體的上限臨界值,讓執行中要求有空間,以及新的高優先順序要求。
HardMemoryLimit Analysis Services 因記憶體壓力而立即開始拒絕要求的另一個臨界值。

屬性

1 - 100 之間的值代表 實體記憶體總計虛擬位址空間的百分比,以較少者為準。 超過 100 的值代表記憶體限制 (位元組)。

DefaultPagesCountToReuse

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

HandleIA64AlignmentFaults

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

HardMemoryLimit

指定記憶體閾值,超過此閥值後,執行個體會積極地終止使用中的使用者工作階段以減少記憶體的使用量。 所有終止的會話都會收到記憶體壓力取消的相關錯誤。 預設值零 (0),代表 HardMemoryLimit 會設定為 TotalMemoryLimit 和系統總實體記憶體之間的中間值;若系統的實體記憶體大於處理序的虛擬位址空間,則會改用虛擬位址空間來計算 HardMemoryLimit。 此值無法針對Azure Analysis Services進行設定。

HeapTypeForObjects

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。 下列是有效值:

設定 描述
-1 (預設值) Automatic。 引擎將決定要使用哪一個。
0 Windows LFH 堆積。
1 Analysis Services 位置配置器。
3 每個物件都有自己的 Analysis Services 堆積。
HighMemoryPrice

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

LowMemoryLimit

帶正負號的 64 位雙精確度浮點數屬性,定義 Analysis Services 開始釋放低優先順序物件的記憶體的第一個臨界值,例如不常使用的快取。 配置記憶體之後,伺服器就不會在低於此限制時釋出記憶體。 預設值 65,表示記憶體下限為實體記憶體或虛擬位址空間的 65%,以較少者為準。

MemoryHeapType

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。 以下為 SQL Server 2016 SP1 和更新版 Analysis Services 中的有效值:

設定 描述
-1 (預設值) Automatic。 引擎將決定要使用哪一個。
1 Analysis Services 堆積。
2 Windows LFH。
5 混合式配置器。 此配置器會針對 < = 16 KB 配置使用 Windows LFH,以及 16 KB 配置的 AS 堆積 > 。
6 Intel TBB 配置器。 適用於 SQL Server 2016 SP1 (和更新版) Analysis Services 中。
MidMemoryPrice

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

MinimumAllocatedMemory

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

PreAllocate

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

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
All others 20
SessionMemoryLimit

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

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

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

WaitCountIfHighMemory

此為進階屬性,除非在 Microsoft 支援人員的指導之下,否則不應隨意變更。

另請參閱

Analysis Services 中的伺服器屬性
判斷 Analysis Services 執行個體的伺服器模式