SSAS 執行個體所配置的記憶體大於設定的 [警告臨界值] (以 SSAS 執行個體之總記憶體限制設定的百分比表示) 時,此監視器會回報警告。這些配置大於設定的 [重大臨界值] 時,此監視器會發出重大警示。
SSAS 執行個體所配置的記憶體大於設定的 [警告臨界值] (以 SSAS 執行個體之總記憶體限制設定的百分比表示) 時,此監視器會回報警告。這些配置大於設定的 [重大臨界值] 時,此監視器會發出重大警示。
在某些情況下,SSAS 可能會接近或超總記憶體限制的設定。在某些情況下,單一作業就需要超過這些限制以上的記憶體,而且,雖然伺服器會盡力清除其他較不即時性工作的記憶體,但是配置有時仍無可避免會超出設定的限制,否則,必須強制該作業失敗。
處理大型維度或事實資料時,特別是具有耗用大量空間之資料類型 (例如,長字串、二進位資料等) 的屬性時,或維度包含數個成員時,可能會發生此情況。除此之外,伺服器上執行的查詢可能涵蓋極大量的空間,特別是當交叉聯結多個維度,或需要非常大量的計算,以得出有經驗之系統管理員先前未彙總 (或只是無法事先進行彙總) 之儲存格的結果時。
記憶體超出伺服器的限制時,系統管理員可以使用數種方式來補救此問題。在考慮產生記憶體使用量的基礎活動、伺服器上工作負載的需求、可用資源與其他因素,且完整檢閱及考慮 SSAS Multidimensional Performance Guide (SSAS 多維度效能指南),或視需要諮詢 Microsoft 支援人員之後,可以使用下列任一方式解決此問題:
找出負責最重要之記憶體配置的工作階段,並手動進行終止。
找出負責最重要之記憶體配置的工作階段,並依各自的情況解決這些工作階段,以重新排程處理作業或報表、在使用率較低的時段預先配置快取暖查詢,或事先設計在處理期間要建置的特定彙總,因而降低後續使用者查詢所耗用記憶體。
加大主機電腦上的實體記憶體。
降低主機電腦上其他處理序的記憶體使用量,例如 SQL Server 關聯式資料庫引擎的執行個體或是其他 SSAS 執行個體。
請加大總記憶體限制或加大為警示所設定的臨界值,以避免此狀況。
如果不需要為伺服器考量記憶體使用量,請完全停用此監視器。
Memory configuration and sizing considerations in SQL Server 2012 (SQL Server 2012 中記憶體組態與設定大小的考量事項)
Analysis Services 記憶體屬性的 TechNet 文件
SSAS Multidimensional Performance Guide (SSAS 多維度效能指南)
名稱 | 描述 | 預設值 |
重大臨界值 (%) | Analysis Services 記憶體使用量 (%) 超出臨界值時,[健全狀況狀態] 會變更為 [重大]。 | 95 |
已啟用 | 啟用或停用工作流程 | 是 |
產生警示 | 定義工作流程是否產生警示 | 是 |
間隔秒數 | 執行工作流程的週期性時間間隔 (秒)。 | 900 |
範例數 | 如果違反臨界值次數大於或等於 [違反數目下限],則 [健全狀況狀態] 會變更。 | 4 |
同步處理時間 | 使用 24 小時制指定的同步處理時間。將會忽略。 |
|
逾時 (秒) | 指定允許工作流程在關閉且標示為失敗之前執行的時間。 | 300 |
警告臨界值 (%) | 如果 Analysis Services 記憶體使用量 (%) 超出臨界值,但仍低於 [重大臨界值 (%)],則 [健全狀況狀態] 會變更為 [警告]。 | 80 |
Target | Microsoft.SQLServer.2012.AnalysisServices.Instance | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.AnalysisServices.MonitorType.Instance.MemoryUsagePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2012.AnalysisServices.UnitMonitor.Instance.MemoryUsage" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2012.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.AnalysisServices.MonitorType.Instance.MemoryUsagePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.AnalysisServices.UnitMonitor.Instance.MemoryUsage.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='MemoryLimitHighGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='MemoryLeavesForOsGB']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='TotalPhysicalMemoryGB']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='MemoryUsageGB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='MemoryUsageByOtherProcessGB']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='UsedPhysicalMemoryGB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='MemoryLimitLowGB']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='MemoryLimitLowPercent']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='MemoryLimitHighPercent']$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Critical" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<CriticalThreshold>95</CriticalThreshold>
<WarningThreshold>80</WarningThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>