Sintomas
Suponha que você use uma instância do Microsoft SQL Server 2016 Analysis Services. Embora cada vez mais objetos de escopo global sejam armazenados em cache, esses caches nunca são limpos. Isso pode resultar em um crescimento contínuo da memória e, eventualmente, o servidor pode falhar. Os escopos globais são armazenados em cache de acordo com os requisitos de segurança de cada usuário. Portanto, você geralmente só encontrará esse problema quando perceber um dos seguintes cenários:
-
Você tem expressões dinâmicas (por exemplo, username (), CustomData ()) no modelo. Isso não é obrigatório para ver o problema, mas é uma causa comum. Quando as expressões dinâmicas estiverem presentes, cada usuário exclusivo precisará criar seu próprio escopo global exclusivo. Isso causa um aumento significativo no número de escopos globais que precisam ser criados e armazenados em cache.
-
Você tem um modelo complexo que tem muitos metadados e segurança. Isso influencia o custo de memória por objeto de escopo. À medida que o número de escopos globais armazenados em cache aumenta, o espaço da memória aumenta com base no custo de memória por objeto de escopo.
-
Você tem muitos usuários exclusivos se conectando ao servidor. Por exemplo, o PowerBI.com pode atualizar blocos em seu painel para cada usuário em um cronograma frequente. Quando isso acontece, o Analysis Services recebe muitas conexões e consultas para cada usuário exclusivo, e o número de escopos globais é picodo e usa muitas memórias.
Observação: após aplicar esse hotfix, a versão do SQL Server será 13.0.2170.0.
Resolução
Informações sobre a atualização cumulativa
A correção para esse problema está incluída na seguinte atualização cumulativa do SQL Server:
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Solução alternativa
Para contornar esse problema, execute manualmente um <ClearCache> comando XMLA para o banco de dados em um cronograma apropriado. Isso permitirá que todos os caches de escopo global sejam limpos e que a memória reduza novamente. Essa opção causará algum custo de desempenho quando você se conectar da próxima vez, porque não poderá reutilizar o escopo global em cache.
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".
Referências
Saiba mais sobre a terminologia que a Microsoft usa para descrever atualizações de software.