Problema de desempenho de writeback quando a segurança da célula está habilitada no SQL Server Analysis Services

Este artigo ajuda você a contornar o problema de desempenho de writeback que ocorre quando a segurança da célula está habilitada no SQL Server Analysis Services.

Versão original do produto: SQL Server 2012 Analysis Services
Número de KB original: 2747616

Sintomas

Suponha que você esteja executando o Microsoft SQL Server Analysis Services (SSAS) em uma função para a qual a segurança da célula está habilitada. Quando você tenta executar uma instrução UPDATE CUBE Multidimensional Expressions (MDX), a execução da instrução pode levar mais tempo para ser executada do que para uma função para a qual a segurança da célula não está habilitada.

Motivo

Este é o comportamento padrão. Quando a segurança da célula é habilitada, o mecanismo analysis services executa as consultas no modo célula por célula. Se a operação de writeback executar a alocação em alto nível, o espaço das células de nível de folha será grande.

Observação

O espaço não é o número de linhas na tabela de fatos. O espaço é o espaço de junção cruzada completo de todos os atributos de granularidade de dimensão. Leva muito tempo para enumerar essas células uma a uma para marcar a segurança da célula.

Solução alternativa

Como solução alternativa para esse problema, use um dos seguintes métodos.

  • Método 1

    Coloque as medidas que devem ser protegidas em um cubo separado e implemente a segurança de gravação no nível do cubo sob sua função.

    Observação

    O desempenho quando você usa esse método é tão rápido quanto quando a consulta é executada em uma função de administrador. No entanto, o design do cubo se torna complexo e você precisa criar cubos virtuais para usar grupos de medidas vinculados para retornar as diferentes medidas em uma única consulta MDX. Além disso, ao executar a operação de writeback, você precisa criar uma consulta MDX que use o nome do cubo correto com base na medida de writeback.

  • Método 2

    Execute a operação de writeback no nível de granularidade mais baixo de um determinado membro. Você não pode alocar para muitos membros de granularidade detalhados.

    Observação

    Talvez seja necessário criar membros fictícios em tabelas de dimensões marcadas como membros de ajuste em cada dimensão para dar suporte à operação de writeback.