Il monitoraggio segnala uno stato Critico e genera un avviso quando la quantità di memoria usata dal pool di risorse è maggiore dell'impostazione della soglia, espressa come percentuale della memoria disponibile per le tabelle in memoria per il pool di risorse specifico. Questo monitoraggio è un monitoraggio delle dipendenze (rollup).
Il monitoraggio segnala uno stato critico quando la quantità di memoria usata dal pool di risorse è maggiore dell'impostazione della soglia, espressa come percentuale della memoria disponibile per le tabelle in memoria per il pool di risorse specifico. Questo monitoraggio è un monitoraggio delle dipendenze (rollup).
Il pool di risorse denominato quando viene mappato a un database con ottimizzazione per la memoria tiene traccia della memoria allocata a tutte le tabelle con ottimizzazione per la memoria, comprese le tabelle interne usate per diverse strutture all'interno del motore OLTP in memoria.
OLTP in memoria di SQL Server usa più memoria e in maniera diversa rispetto a SQL Server. È possibile che la quantità di memoria installata e allocata per OLTP in memoria diventi insufficiente per soddisfare le esigenze crescenti. In tal caso, potrebbero verificarsi problemi a causa della memoria insufficiente.
Per informazioni dettagliate, fare riferimento all'articolo seguente: Associazione di un database con tabelle con ottimizzazione per la memoria a un pool di risorse.
Per risolvere la condizione di memoria insufficiente o esaurita, è necessario liberare parte della memoria esistente riducendone l'uso o rendere disponibile più memoria alle tabelle in memoria. Le possibili azioni correttive possono includere:
Controllare se una transazione a lunga esecuzione sta impedendo l'operazione di Garbage Collection della memoria. In tal caso, provare a terminare la transazione a lunga esecuzione e/o esaminare la progettazione dell'applicazione per vedere se è possibile ridurre la durata delle transazioni.
Liberare parte della memoria esistente.
Eliminare le righe delle tabelle con ottimizzazione per la memoria non essenziali e attendere l'esecuzione dell'operazione di Garbage Collection.
Spostare una o più righe in una tabella basata su disco.
Aumentare il valore di MAX_MEMORY_PERCENT nel pool di risorse.
Aumentare la memoria disponibile per l'istanza di SQL Server configurando un valore più alto per Memoria massima del server.
Installare altra memoria.
Nome | Descrizione | Valore predefinito |
Abilitato |
| Sì |
Genera avvisi |
| No |
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>