資源集區使用的記憶體數量大於臨界值設定 (以指定的資源集區記憶體最佳化資料的資料表之可用記憶體百分比表示) 時,此監視器會回報重大狀態,並引發警示。此監視器是相依性 (積存) 監視器。
資源集區使用的記憶體數量大於臨界值設定 (以指定的資源集區記憶體最佳化資料的資料表可用記憶體百分比表示) 時,此監視器會回報重大狀態。此監視器是相依性 (積存) 監視器。
對應至記憶體最佳化資料庫的具名資源集區,會追蹤配置給所有記憶體最佳化資料表的記憶體,包括用於記憶體最佳化資料引擎內各種結構的內部資料表。
SQL Server 記憶體最佳化資料所使用的記憶體比 SQL Server 多,而且使用方法也不同。為記憶體最佳化資料所安裝及配置的記憶體數量,可能會變得無法滿足成長需求。如果發生這種情況,可能會用盡記憶體。
如需詳細資料,請參閱本文: 將包含記憶體最佳化資料表的資料庫繫結至資源集區。
若要解決記憶體太少或記憶體不足的情況,您需要降低使用量來釋出現有記憶體,或是為記憶體最佳化資料的資料表提供更多記憶體。可能的更正動作包括:
確認是否有長時間執行的交易會導致無法回收記憶體。如果有的話,請考慮刪除長時間執行的交易,及 (或) 查看應用程式的設計,確認是否可以減少交易的期間。
釋出現有記憶體。
刪除非必要的記憶體最佳化資料表資料列,然後等待記憶體回收。
將一或多個資料列移至磁碟資料表。
加大資源集區上的 MAX_MEMORY_PERCENT 值。
將 [最大伺服器記憶體] 設為更高的值,以加大 SQL Server 執行個體的可用記憶體。
安裝額外的記憶體。
名稱 | 描述 | 預設值 |
已啟用 | 啟用或停用該工作流程。 | 是 |
產生警示 | 定義工作流程是否會產生警示。 | 否 |
Target | Microsoft.SQLServer.2014.Database |
Parent Monitor | System.Health.PerformanceState |
Algorithm | WorstOf |
Source Monitor | Microsoft.SQLServer.2014.Monitor.UserResourcePool.MemoryConsumption |
Relationship | Microsoft.SQLServer.2014.RelationshipType.DatabaseReferencesUserResourcePool |
Category | PerformanceCollection |
Enabled | True |
Alert Generate | False |
Alert Auto Resolve | False |
Remotable | True |
Accessibility | Public |
<DependencyMonitor ID="Microsoft.SQLServer.2014.DependencyMonitor.Database.MemoryConsumptionRollUp" Accessibility="Public" Enabled="true" Target="SQL2014Core!Microsoft.SQLServer.2014.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" RelationshipType="SQL2014Core!Microsoft.SQLServer.2014.RelationshipType.DatabaseReferencesUserResourcePool" MemberMonitor="Microsoft.SQLServer.2014.Monitor.UserResourcePool.MemoryConsumption">
<Category>PerformanceCollection</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>