Propiedades de memoria

Se aplica a: SQL Server Analysis Services Azure Analysis Services Power BI Premium

Analysis Services asigna previamente una pequeña cantidad de memoria al inicio para que las solicitudes se puedan controlar inmediatamente. Se asigna memoria adicional a medida que aumentan las cargas de trabajo de procesamiento y consultas. Al especificar valores de configuración, puede controlar los umbrales en los que se liberará la memoria. Por ejemplo, el valor HardMemoryLimit especifica una condición de memoria insuficiente autoimpuesta (de forma predeterminada, este umbral no está habilitado), donde las nuevas peticiones se rechazan de forma absoluta hasta que haya disponibles más recursos. La siguiente configuración se aplica a los servidores tabulares y multidimensionales, a menos que se indique lo contrario.

Configuración de memoria predeterminada

En la configuración predeterminada, cada instancia asigna una pequeña cantidad de RAM (de 40 MB a 50 MB) en el inicio, incluso si la instancia está inactiva. Las opciones de configuración son por instancia. Si ejecuta varias instancias, como una instancia tabular y multidimensional en el mismo hardware, cada instancia asignará su propia memoria independientemente de otras instancias.

Configuración Descripción
LowMemoryLimit Para instancias multidimensionales, un umbral inferior en el que el servidor empieza a liberar memoria asignada a objetos de uso poco frecuente.
VertiPaqMemoryLimit Para instancias tabulares, un umbral inferior en el que el servidor empieza a liberar memoria asignada a objetos de uso poco frecuente.
TotalMemoryLimit Un umbral superior en el que Analysis Services empieza a liberar memoria con mayor intensidad para liberar espacio para las peticiones en ejecución, así como para nuevas solicitudes de prioridad alta.
HardMemoryLimit Otro umbral en el que Analysis Services empieza a rechazar las peticiones de forma absoluta debido a la presión de memoria.

Referencia de propiedades

Las propiedades siguientes son válidas para los modos tabular y multidimensional, excepto si se especifica lo contrario.

Los valores comprendidos entre 1 y 100 representan porcentajes de Memoria física total o de Espacio de direcciones virtuales, lo que sea menor. Los valores superiores a 100 representan límites de memoria en bytes.

LowMemoryLimit
Propiedad de número de punto flotante de precisión doble de 64 bits con firma que define el primer umbral en el que Analysis Services comienza a liberar memoria para objetos de prioridad baja, como una memoria caché usada con poca frecuencia. Después de asignar la memoria, el servidor no liberará memoria por debajo de este límite. El valor predeterminado es 65, lo que indica que el límite de memoria baja es el 65% de la memoria física o del espacio de direcciones virtuales, lo que sea menor.

TotalMemoryLimit
Define un umbral que, cuando se alcanza, hace que el servidor cancele la asignación de memoria para liberar espacio para otras peticiones. Cuando se alcanza este límite, la instancia comenzará lentamente a limpiar cachés de la memoria cerrando las sesiones expiradas y descargando los cálculos no utilizados. Por SQL Server Analysis Services, el valor predeterminado es el 80 % de la memoria física o el espacio de direcciones virtuales, lo que sea menor. El valor predeterminado de Azure Analysis Services se basa en el plan y no es configurable. TotalMemoryLimit siempre debe ser menor que HardMemoryLimit.

HardMemoryLimit
Especifica un umbral de memoria a partir del cual la instancia finaliza enérgicamente las sesiones de usuario activas para reducir el uso de memoria. Todas las sesiones terminadas recibirán un error sobre la cancelación por presión de memoria. El valor predeterminado, cero (0), significa que HardMemoryLimit se establecerá en un valor intermedio comprendido entre TotalMemoryLimit y la memoria física total del sistema. Si la memoria física del sistema es mayor que el espacio de direcciones virtuales del proceso, se usará en su lugar el espacio de direcciones virtuales para calcular HardMemoryLimit. Este valor no se puede configurar para Azure Analysis Services.

QueryMemoryLimit
Solo se aplica a Azure Analysis Services y SQL Server 2019 y versiones posteriores. Propiedad avanzada para controlar la cantidad de memoria que se puede usar durante una consulta.

En SQL Server 2019 y versiones posteriores, esta configuración solo se aplica a los trabajos de cola de memoria donde se crean los resultados intermedios de la consulta DAX durante el procesamiento de consultas. No se aplica a las consultas MDX. En Azure Analysis Services, esta configuración no se limita solo a los trabajos de cola de memoria. Se aplica a toda la memoria utilizada por las consultas DAX y MDX.

Se especifica en porcentaje de hasta 100. Cuando hay más de 100, está en bytes. Establecer un valor de 0 significa que no se especifica ningún límite. Por Azure Analysis Services, el valor predeterminado viene determinado por el plan.

Plan Valor predeterminado
D1 80
Todos los demás planes 20

VirtualMemoryLimit
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

VertiPaqPagingPolicy
Solo para instancias tabulares, especifica el comportamiento de paginación en caso de que el servidor no tenga memoria suficiente. Los valores válidos son los siguientes:

Configuración Descripción
0 (valor predeterminado para Azure Analysis Services) Deshabilita la paginación. Si la memoria es insuficiente, el procesamiento genera un error de memoria insuficiente. Si ha deshabilitado la paginación, debe otorgar privilegios de Windows a la cuenta de servicio. Para obtener instrucciones, vea Configurar las cuentas de servicio (Analysis Services).
1 (valor predeterminado para SQL Server Analysis Services) Esta propiedad permite la paginación en el disco mediante el archivo de página del sistema operativo (pagefile.sys).

Cuando se establece en 1, es menos probable que se produzcan errores de procesamiento debido a restricciones de memoria, ya que el servidor intentará paginar en el disco con el método que ha especificado. Establecer la propiedad VertiPaqPagingPolicy no garantiza que no se producirán errores de memoria. Pueden seguir produciéndose errores de memoria insuficiente en las siguientes condiciones:

  • No hay suficiente memoria para todos los diccionarios. Durante el procesamiento, el servidor bloquea los diccionarios de cada columna de la memoria y todos ellos juntos no pueden ser más que el valor especificado para VertiPaqMemoryLimit.

  • No hay espacio suficiente en las direcciones virtuales para alojar el proceso.

Para resolver problemas persistentes de memoria insuficiente, puede intentar rediseñar el modelo a fin de reducir la cantidad de datos que necesita procesar o agregar más memoria física al equipo.

VertiPaqMemoryLimit
Solo para instancias tabulares, si se permite la paginación en el disco, esta propiedad especifica el nivel de consumo de memoria (como un porcentaje del total de memoria) en que se inicia la paginación. El valor predeterminado es 60. Si el consumo de memoria es inferior al 60 por ciento, el servidor no paginará en el disco. Esta propiedad depende de VertiPaqPagingPolicyProperty, que se debe establecer en 1 para que se produzca la paginación.

HighMemoryPrice
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

MemoryHeapType
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft . Los valores válidos en SQL Server 2016 SP1 y versiones posteriores de Analysis Services:

Configuración Descripción
-1 (Valor predeterminado) automático. El motor decidirá cuál valor usar.
1 Montón de Analysis Services.
2 LFH de Windows.
5 Asignador híbrido. Este asignador usará Windows LFH para <= 16 KB allocations and the AS Heap for > asignaciones de 16 KB.
6 Asignador de Intel TBB. Disponible en SQL Server 2016 SP1 y versiones posteriores de Analysis Services.

HeapTypeForObjects
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft . Los valores válidos son los siguientes:

Configuración Descripción
-1 (Valor predeterminado) automático. El motor decidirá cuál valor usar.
0 Montón de LFH de Windows.
1 Asignador de ranuras de Analysis Services.
3 Cada objeto tiene su propio montón de Analysis Services.

DefaultPagesCountToReuse
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

HandleIA64AlignmentFaults
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

MidMemoryPrice
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

MinimumAllocatedMemory
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

PreAllocate
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

SessionMemoryLimit
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

WaitCountIfHighMemory
Una propiedad avanzada que no debería cambiar, salvo a petición de expertos en soporte técnico de Microsoft .

Consulte también

Propiedades del servidor en Analysis Services
Determinar el modo de servidor de una instancia de Analysis Services