Propiedades de memoria

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

Analysis Services asigna previamente una pequeña cantidad de memoria al inicio para que las solicitudes se puedan administrar de inmediato. 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.

Nota:

QueryMemoryLimit es la única propiedad Memory que se aplica a Power BI.

Configuración de memoria predeterminada

En la configuración predeterminada, cada instancia asigna una pequeña cantidad de RAM (40 MB a 50 MB) al 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.

Parámetro 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 Umbral superior en el que Analysis Services comienza a liberar memoria de forma más agresiva para hacer espacio para las solicitudes que están en ejecución, así como las 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.

Propiedades

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.

DefaultPagesCountToReuse

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

HandleIA64AlignmentFaults

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

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 al cancelarse 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.

HeapTypeForObjects

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:

Parámetro 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.
HighMemoryPrice

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

LowMemoryLimit

Propiedad de número de punto flotante de precisión doble con signo de 64 bits que define el primer umbral en el que Analysis Services comienza a liberar memoria para objetos de prioridad baja, como una 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.

MemoryHeapType

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:

Parámetro 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 <= asignaciones de 16 KB y el montón de AS para >asignaciones de 16 KB.
6 Asignador de Intel TBB. Disponible en SQL Server 2016 SP1 y versiones posteriores de Analysis Services.
MidMemoryPrice

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

MinimumAllocatedMemory

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

PreAllocate

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

QueryMemoryLimit

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

En SQL Server 2019 y versiones posteriores de Analysis Services, esta configuración solo se aplica a las colas de memoria en las que se crean los resultados intermedios de la consulta DAX durante el procesamiento de consultas. No se aplica a las consultas MDX.

En Power BI, Azure Analysis Services y SQL Server 2022 y versiones posteriores Analysis Services, si la propiedad ResourceTrackingEnabledFeature está habilitada, esta configuración no se limita solo a las colas de memoria. Solo se aplica a toda la memoria utilizada por las consultas DAX y MDX en modo tabular.

Especificado en porcentaje hasta 100. Cuando más de 100, está en bytes. Establecer un valor de 0 significa que no se especifica ningún límite.

Para Azure Analysis Services, el valor predeterminado viene determinado por el plan.

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

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

TotalMemoryLimit

Define un umbral que, cuando se alcanza, hace que el servidor desasigne memoria para hacer espacio para otras solicitudes. 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. Para 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 se puede configurar. TotalMemoryLimit siempre debe ser menor que HardMemoryLimit.

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.

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:

Parámetro Descripción
0 (valor predeterminado para Azure Analysis Services y Power BI) 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. Consulte Configurar cuentas de servicio (Analysis Services) para obtener instrucciones.
1 (valor predeterminado para SQL Server Analysis Services) Esta propiedad permite la paginación en 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 en 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.

VirtualMemoryLimit

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

WaitCountIfHighMemory

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