Síntomas
Suponga que usa una instancia de Microsoft SQL Server 2016 Analysis Services. Mientras más y más objetos de ámbito global se almacenan en caché, estas cachés nunca se limpian. Esto puede dar lugar a un crecimiento continuo de la memoria y, finalmente, el servidor puede bloquearse. Los ámbitos globales se almacenan en caché en función de los requisitos de seguridad de cada usuario. Por lo tanto, normalmente solo se producirá este problema cuando experimente uno de los siguientes escenarios:
-
Tiene expresiones dinámicas (por ejemplo, username (), CustomData ()) en el modelo. Esto no es obligatorio para ver el problema, pero es una causa común. Cuando hay expresiones dinámicas, cada usuario único necesita crear su propio ámbito global. Esto provoca un aumento significativo en el número de ámbitos globales que es necesario crear y almacenar en memoria caché.
-
Tiene un modelo complejo que tiene muchos metadatos y seguridad. Esto influye en el costo de memoria por objeto de ámbito. A medida que aumenta el número de ámbitos globales almacenados en caché, la superficie de memoria crece según el costo de memoria por objeto de ámbito.
-
Tiene una gran cantidad de usuarios únicos que se conectan al servidor. Por ejemplo, PowerBI.com puede actualizar mosaicos en su panel para cada usuario con frecuencia. Cuando esto sucede, Analysis Services recibe una gran cantidad de conexiones y consultas para cada usuario único y el número de ámbitos globales se resume y usa una gran cantidad de memoria.
Nota: después de aplicar este hotfix, la versión de SQL Server será 13.0.2170.0.
Resolución
Información sobre la actualización acumulativa
La corrección para este problema se incluye en la siguiente actualización acumulativa para SQL Server:
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Solución alternativa
Para solucionar este problema, ejecute manualmente una <ClearCache> el comando XMLA a la base de datos según una programación adecuada. Esto permitiría borrar todas las cachés de ámbito global y la memoria se reduciría de nuevo. Esta opción hará que se produzca un costo de rendimiento cuando se conecte la próxima vez, ya que no podrá volver a usar el ámbito global almacenado en caché.
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".
Referencias
Obtenga más información sobre la terminología que Microsoft usa para describir las actualizaciones de software.