Ada.ia
Logo Base de Conhecimento

A consulta excedeu o limite de cruzamentos suportados

O aviso “A consulta excedeu o limite de cruzamentos suportados” indica que a consulta gerou um número excessivo de combinações de dados, ultrapassando o limite de 500.000 cruzamentos. Esse limite foi estabelecido para evitar sobrecarga no processamento e garantir que as análises continuem rápidas e eficientes. Esse alerta surge, principalmente, quando múltiplas dimensões de dados são combinadas, resultando em um volume muito grande de possibilidades. Para evitar impactos no desempenho, a plataforma restringe consultas que ultrapassem esse limite, garantindo um uso equilibrado dos recursos e uma experiência fluida para todos os usuários.

Por que isso acontece?

O processamento de consultas MDX trata cada dimensão como independente, gerando combinações entre todos os seus membros possíveis. Quando múltiplas dimensões com muitos membros distintos são combinadas, o volume de dados gerado pode se tornar excessivo, tornando a consulta inviável.

Por exemplo, ao obter uma lista de clientes e os produtos que eles compraram, o BIMachine cruza todos os clientes com todos os produtos, formando uma matriz com todas as possíveis combinações de compra. Se o cadastro contém 1.000 clientes distintos e 250 produtos diferentes, a matriz resultante terá 250.000 combinações antes mesmo de considerar filtros ou restrições. Esse volume pode rapidamente ultrapassar limites de segurança, impactando o desempenho da análise.

Como evitar esse problema?

Para otimizar a execução das consultas e evitar o estouro do limite de cruzamentos, pode-se aplicar a seguinte abordagem:

Criar dimensões hierárquicas: A criação de uma dimensão hierárquica permite organizar os dados de forma estruturada, definindo relações diretas entre os elementos. Dessa forma, o processamento da consulta ocorre com base na hierarquia existente, reduzindo a necessidade de cruzamentos massivos de dados. Saiba mais

Essa abordagem consiste em combinar previamente os cruzamentos relevantes dentro de uma estrutura hierárquica, garantindo que apenas relações válidas sejam consideradas na análise, evitando o processamento de combinações desnecessárias.

Como aplicar na consulta MDX?

Com essa solução, é possível reformular a consulta MDX utilizando a nova dimensão hierárquica:

SELECT
NON EMPTY {[Measures].[QTPROCEDIMENTO]} ON COLUMNS,
NON EMPTY [DimensaoHierarquica].[NivelMaisEspecifico].Members ON ROWS
FROM [BaseAnalitica]
WHERE NonEmptyCrossJoin(
{([DimensaoFiltro].[Filtro])},
([DimensaoTempo].[Data].[Inicio] : [DimensaoTempo].[Data].[Fim])
)

Nessa abordagem:

  • As linhas (ON ROWS) utilizam a dimensão hierárquica no nível mais específico relevante para a análise, garantindo que apenas relações diretas sejam consideradas.
  • A opção “Mostrar hierarquia” pode ser ativada na análise para exibir os membros dos níveis anteriores dentro da estrutura hierárquica.

Essa solução permite evitar a execução de cruzamentos desnecessários, reduzindo significativamente o impacto no desempenho e garantindo que a análise seja processada de forma eficiente.

Artigos recentes

Rolar para cima