KB2430162: "la expresión contiene una función que no puede funcionar en un conjunto con más de 4.294.967.296 tuplas" aparece el mensaje de error cuando intenta ejecutar una consulta MDX en SSAS 2008 o en SSAS 2008 R2


Microsoft distribuye las soluciones Microsoft SQL Server 2008 Service Pack 1 (SP1) o SQL Server 2008 R2 como un archivo que se puede descargar. Debido a que las correcciones son acumulativas, cada versión nueva contiene todas las revisiones y todas las revisiones de seguridad incluidas en el Service Pack 1 (SP1) anterior de SQL Server 2008 o la versión de corrección de SQL Server 2008 R2.

Síntomas


Imagine la siguiente situación:
  • Tiene una consulta de expresiones multidimensionales (MDX) que cumple las condiciones siguientes en Microsoft SQL Server 2008 Analysis Services (SSAS) 2008 o Microsoft SQL Server 2008 R2 Analysis Services (SSAS) 2008 R2:
    • La consulta usa la función CROSSJOIN.
    • La expresión de la consulta tiene más de dos conjuntos de argumentos compuestos de tuplas de diferentes jerarquías de atributos en la misma dimensión.
    • Estos conjuntos están separados por otro conjunto compuesto de tuplas de otra dimensión.
    • El conjunto de resultados teórico de la función CROSSJOIN generalmente es más de 4.294.967.296 tuplas. Por ejemplo, tiene una consulta MDX que contiene lo siguiente:
      WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Customer].[Customer].[Customer], [Product].[Product].[Product])SELECT {} ON 0,S.ITEM(1) ON 1FROM [Adventureworks]
  • Intenta ejecutar la consulta.
En este escenario, la consulta no se ejecuta. Además, aparece un mensaje de error similar al siguiente:
La expresión contiene una función que no puede funcionar en un conjunto con más de 4.294.967.296 tuplas.
Nota Este tipo de consulta MDX puede generarlo automáticamente una tabla dinámica de Excel.

Resolución


Información sobre la actualización acumulativa

SQL Server 2008 SP1

La corrección para este problema se publicó por primera vez en la actualización acumulativa 11. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 Service Pack 1 (SP1), haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2413738 Paquete de actualización acumulativa 11 para SQL Server 2008 Service Pack 1
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad que se incluían en la versión anterior de SQL Server 2008 Service Pack 1 (SP1). Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
970365 Las compilaciones de SQL Server 2008 que se lanzaron después de publicar SQL Server 2008 Service Pack 1

SQL Server 2008 R2

La corrección para este problema se publicó por primera vez en la actualización acumulativa 5. Para obtener más información sobre cómo obtener este paquete de actualización acumulativa para SQL Server 2008 R2, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2438347 Paquete de actualización acumulativa 5 para SQL Server 2008 R2
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008 R2. Le recomendamos que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
981356 Las compilaciones de SQL Server 2008 R2 que se lanzaron después de publicar SQL Server 2008 R2

Service Pack 2 de SQL Server 2008

La corrección para este problema se publicó por primera vez en la actualización acumulativa 2 para SQL Server 2008 Service Pack 2. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2467239 Paquete de actualización acumulativa 2 para SQL Server 2008 Service Pack 2
Nota Como las compilaciones son acumulativas, cada nueva versión de corrección contiene todas las revisiones y todas las revisiones de seguridad incluidas en la versión anterior de corrección de SQL Server 2008. Microsoft recomienda que considere la posibilidad de aplicar la versión de corrección más reciente que contenga este Hotfix. Si desea obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2402659 Las compilaciones de SQL Server 2008 que se lanzaron después de que se publicó SQL Server 2008 Service Pack 2
Los Hotfix 2008 de Microsoft SQL Server se crean para determinados Service Packs de SQL Server. Debe aplicar una revisión de SQL Server 2008 Service Pack 2 a una instalación de SQL Server 2008 Service Pack 2. De forma predeterminada, cualquier Hotfix proporcionado en un Service Pack de SQL Server se incluye en el siguiente Service Pack de SQL Server.

Solución alternativa


Para solucionar este problema, use una expresión que tenga dos atributos adyacentes de la misma dimensión en la consulta. Por ejemplo, la consulta MDX contiene lo siguiente:
WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Product].[Product].[Product], [Customer].[Customer].[Customer])SELECT {} ON 0,S.ITEM(1) ON 1FROM [Adventureworks]

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".