MSSQL 2016: memoria de SQL Server insuficiente

Microsoft.SQLServer.2016.EventCollectionRule.DBEngine.SQLServerOutOfMemory (Rule)

SQL Server no asignó suficiente memoria para ejecutar la consulta.

Knowledge Base article:

Resumen

SQL Server no asignó suficiente memoria para ejecutar la consulta.

Causas

Este problema puede deberse a varios motivos, incluida la configuración del sistema operativo, la disponibilidad de la memoria física o los límites de memoria en la carga de trabajo actual. En la mayoría de los casos, la transacción con error no es la causa de este error. Las consultas de diagnóstico, como las instrucciones DBCC, pueden generar error porque el servidor no tiene memoria suficiente

Los datos con optimización para memoria de SQL Server usan más memoria y de maneras diferentes que SQL Server. Es posible que la cantidad de memoria que ha instalado y asignado para los datos con optimización para memoria se vuelva inadecuada para sus crecientes necesidades. De ser así, podría quedarse sin memoria.

Soluciones

Vea el tema Supervisar y solucionar problemas del uso de la memoria para obtener instrucciones específicas que pueden ayudarle a evitar muchas situaciones de memoria insuficiente.

Externo

Vea información más detallada sobre este problema: Resolver problemas de memoria insuficiente.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Habilitado

Habilita o deshabilita el flujo de trabajo.

Prioridad

Define la prioridad de la alerta.

1

Gravedad

Define la gravedad de la alerta.

2

Element properties:

TargetMicrosoft.SQLServer.2016.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID701
Event Source$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2016: SQL Server no asignó suficiente memoria para ejecutar la consulta
{0}
Event LogApplication
CommentMom2016ID='{2531CFA5-7EF0-4B45-AAA1-DAE73294DFF6}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2016.EventCollectionRule.DBEngine.SQLServerOutOfMemory" Target="SQL2016Core!Microsoft.SQLServer.2016.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2016ID='{2531CFA5-7EF0-4B45-AAA1-DAE73294DFF6}';MOM2016GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>701</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2016.EventCollectionRule.DBEngine.SQLServerOutOfMemory.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>