Erro (o otimizador de consulta gerou muitos subcubos) e a consulta MDX falha na instância multidimensional do SSAS

Este artigo ajuda você a resolver o problema que ocorre quando você executa uma consulta MDX (Multidimensional Expressions) em uma instância multidimensional do Microsoft SQL Server Analysis Services (SSAS).

Aplica-se a: SQL Server 2012 Analysis Services, SQL Server 2014 Analysis Services, SQL Server 2016 Analysis Services, SQL Server 2017 Analysis Services Windows, SQL Server 2019 Analysis Services Windows
Número KB original: 4533057

Sintomas

Quando você executa uma consulta MDX (Multidimensional Expressions) em uma instância multidimensional do Microsoft SQL Server Analysis Services (SSAS), a consulta MDX falha e retorna a seguinte mensagem de erro:

O otimizador de consulta gerou muitos subcubos no plano de consulta

Esse erro ocorrerá se as seguintes condições forem verdadeiras:

  • Muitos membros calculados são definidos em um único nível de hierarquia ou atributo.
  • Muitos campos ou membros de atributo são colocados em cada eixo. Ou então, muitos campos são colocados juntos nas linhas ou colunas de uma Tabela Dinâmica no Microsoft Excel.
  • Todos os membros das hierarquias selecionadas são incluídos no eixo.
  • Totais e subtotais grandes são ativados na Tabela Dinâmica do Excel.

Motivo

O FE (Mecanismo de Fórmula SSAS) precisa gerar todos os conjuntos MDX relevantes para o subcubo de consulta do MECANISMO de Armazenamento (SE) ou o subcubo sonar. Há um limite no número de subcubos de consulta SE por consulta que podem ser gerados. Este é o comportamento padrão do produto. Atualmente no plano de consulta, ocorrerá um erro se a FE gerar muitos subcubos de consulta para a consulta.

Resolução

Para evitar esse erro, siga estas diretrizes de práticas recomendadas:

  • Na Tabela Dinâmica do Excel, desative os totais e os subtotais.
  • Remova a hierarquia do eixo Linhas ou Colunas da Tabela Dinâmica na interface do usuário do Excel.
  • Não defina muitos membros calculados (por exemplo, mais de 500) na hierarquia de dimensões. Em vez disso, tenha membros regulares na hierarquia de dimensões e use expressões de atribuição de escopo MDX (também conhecidas como células calculadas) para substituir as expressões desses membros calculados.