La advertencia “La consulta superó el límite de cruces admitidos” indica que la consulta generó un número excesivo de combinaciones de datos, superando el límite de 500.000 cruces. Este límite se ha fijado para evitar la sobrecarga de procesamiento y garantizar que los análisis sigan siendo rápidos y eficaces. Esta alerta surge principalmente cuando se combinan varias dimensiones de datos, lo que da lugar a un volumen muy grande de posibilidades. Para evitar impactos en el rendimiento, la plataforma restringe las consultas que superan este límite, garantizando un uso equilibrado de los recursos y una experiencia fluida para todos los usuarios.
¿Por qué ocurre esto?
El procesamiento de consultas MDX trata cada dimensión como independiente, generando combinaciones entre todos sus posibles miembros. Cuando se combinan varias dimensiones con muchos miembros diferentes, el volumen de datos generados puede llegar a ser excesivo, haciendo inviable la consulta.
Por ejemplo, al obtener un listado de clientes y los productos que han comprado, BIMachine cruza todos los clientes con todos los productos, formando una matriz con todas las combinaciones de compra posibles. Si el registro contiene 1.000 clientes diferentes y 250 productos distintos, la matriz resultante tendrá 250.000 combinaciones antes incluso de considerar filtros o restricciones. Este volumen puede superar rápidamente los límites de seguridad, afectando al rendimiento del análisis.
¿Cómo evitar este problema?
Para optimizar la ejecución de las consultas y evitar sobrepasar el límite de cruce, se puede aplicar el siguiente enfoque:
Crear dimensiones jerárquicas: La creación de una dimensión jerárquica permite organizar los datos de forma estructurada, definiendo relaciones directas entre los elementos. De este modo, el tratamiento de las consultas se realiza sobre la base de la jerarquía existente, reduciendo la necesidad de cruces masivos de datos. Más información
Este enfoque consiste en combinar de antemano los cruces relevantes dentro de una estructura jerárquica, garantizando que en el análisis sólo se tengan en cuenta las relaciones válidas, evitando el procesamiento de combinaciones innecesarias.
¿Cómo aplicarlo a las consultas MDX?
Con esta solución, puede reformular la consulta MDX utilizando la nueva dimensión jerá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]) ) |
En este enfoque:
- Las filas (ON ROWS) utilizan la dimensión jerárquica en el nivel más específico relevante para el análisis, asegurando que sólo se consideran las relaciones directas.
- La opción “Mostrar jerarquía” puede activarse en el análisis para mostrar los miembros de los niveles anteriores dentro de la estructura jerárquica..

Esta solución permite evitar la ejecución de referencias cruzadas innecesarias, reduciendo significativamente el impacto en el rendimiento y garantizando un procesamiento eficaz del análisis.