記憶體屬性
適用於: 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
除了Microsoft支持的指導下,您不應該變更的進階屬性。
HandleIA64AlignmentFaults
除了Microsoft支持的指導下,您不應該變更的進階屬性。
HardMemoryLimit
指定記憶體閾值,之後實例會主動終止作用中用戶會話,以減少記憶體使用量。 所有終止的會話都會收到記憶體壓力取消的相關錯誤。 預設值零 (0),表示
HeapTypeForObjects
除了Microsoft支持的指導下,您不應該變更的進階屬性。 有效值如下所示:
設置 | 描述 |
---|---|
-1 | (預設值)自動。 引擎會決定要使用哪一個引擎。 |
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 | (預設值)自動。 引擎會決定要使用哪一個引擎。 |
1 | Analysis Services HEAP。 |
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 和更新版本中,如果已啟用 ResourceTrackingEnabledFeature 屬性,此設定不僅限於記憶體多任務緩衝處理。 它僅適用於表格式模式中 DAX 和 MDX 查詢使用的所有記憶體。
以百分比指定,最高為100。 超過 100 時,它會以位元組為單位。 設定值為 0 表示未指定任何限制。
針對 Azure Analysis Services,預設值取決於您的計劃。
計劃 | 違約 |
---|---|
D1 | 80 |
所有其他 | 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支持的指導下,您不應該變更的進階屬性。