Remediere: "expresia conține o funcție care nu funcționează pe un set cu mai mult 4,294,967,296 tuple" mesaj de eroare apare atunci când încercați să executați o interogare MDX SSAS 2008 sau în SSAS 2008 R2


Microsoft distribuie Microsoft SQL Server 2008 Service Pack 1(SP1) sau SQL Server 2008 R2 remediază ca un fișier descărcabil. Deoarece remedierile sunt cumulative, fiecare lansare nouă conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în SQL Server 2008 Service Pack 1(SP1) anterioară sau SQL Server 2008 R2 lansată.

Simptome


Să luăm în considerare următorul scenariu:
  • Aveți o interogare multidimensională expresii (MDX) care îndeplinește condițiile următoare în Microsoft SQL Server 2008 Analysis Services (SSAS) 2008 sau în Microsoft SQL Server 2008 R2 Analysis Services (SSAS) 2008 R2:
    • Interogarea utilizează funcția CROSSJOIN.
    • Expresia de interogare are mai mult de două seturi de argument care sunt compuse din tuple de atribute diverse ierarhii în aceeași dimensiune.
    • Aceste seturi sunt separate de un alt set care este compus din tuple dintr-o altă dimensiune.
    • Rezultatul teoretic setată pentru funcția CROSSJOIN este de obicei mai mult 4,294,967,296 tuple.
      De exemplu, aveți o interogare MDX care conține următoarele:
      WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Customer].[Customer].[Customer], [Product].[Product].[Product])SELECT {} ON 0,
      S.ITEM(1) ON 1
      FROM [Adventureworks]
  • Încercați să executați interogarea.
În acest scenariu, interogarea nu se execută. În plus, primiţi următorul mesaj de eroare:
Expresia conține o funcție care nu funcționează pe un set cu mai mult 4,294,967,296 tuple.
Notă Acest tip de interogare MDX pot fi generate automat de un tabel PivotTable Excel.

Rezolvare


Informații despre actualizarea cumulativă

SQL Server 2008 SP1

Remedierea pentru această problemă a fost lansată prima dată în 11 actualizare cumulativă. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 Service Pack 1 (SP1), faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2413738 Cumulative update pachet 11 pentru SQL Server 2008 Service Pack 1
Notă Deoarece compilările sunt cumulative, fiecare nouă lansare de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în anterioare SQL Server 2008 Service Pack 1 (SP1) lansată. Vă recomandăm să luaţi în considerare aplicarea celei mai recente lansări de remediere care conține această remediere rapidă. Pentru mai multe informaţii, faceţi clic pe următorul număr de articol pentru a vedea articolul în baza de cunoştinţe Microsoft:
970365 compilările SQL Server 2008 lansate după lansarea SQL Server 2008 Service Pack 1

SQL Server 2008 R2

Remedierea pentru această problemă a fost lansată prima dată în 5 de actualizare cumulativă. Pentru mai multe informații despre cum se obține acest pachet de actualizare cumulativă pentru SQL Server 2008 R2, faceţi clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
Pachetul de actualizare cumulativă 2438347 5 pentru SQL Server 2008 R2
Notă Deoarece compilările sunt cumulative, fiecare nouă lansare de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în anterioare SQL Server 2008 R2 lansată. Vă recomandăm să luaţi în considerare aplicarea celei mai recente lansări de remediere care conține această remediere rapidă. Pentru mai multe informaţii, faceţi clic pe următorul număr de articol pentru a vedea articolul în baza de cunoştinţe Microsoft:
981356 SQL Server 2008 R2 compilările lansate după lansarea SQL Server 2008 R2

SQL Server 2008 Service Pack 2

Remedierea pentru această problemă a fost lansată prima dată în actualizarea cumulativă 2 pentru SQL Server 2008 Service Pack 2. Pentru mai multe informații despre acest pachet de actualizare cumulativă, faceți clic pe următorul număr de articol pentru a vedea articolul în baza de cunoștințe Microsoft:
2467239 Cumulative pachetul 2 de actualizare pentru SQL Server 2008 Service Pack 2
Notă Deoarece compilările sunt cumulative, fiecare nouă lansare de remediere conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în anterioare SQL Server 2008 lansată. Microsoft recomandă să luaţi în considerare aplicarea celei mai recente lansări de remediere care conține această remediere rapidă. Pentru mai multe informaţii, faceţi clic pe următorul număr de articol pentru a vedea articolul în baza de cunoştinţe Microsoft:
2402659 compilările SQL Server 2008 lansate după lansarea SQL Server 2008 Service Pack 2
Microsoft SQL Server 2008 remedierile rapide sunt create pentru specifice SQL Server service pack. Trebuie să aplicați o remediere rapidă SQL Server 2008 Service Pack 2 pentru o instalare de SQL Server 2008 Service Pack 2. În mod implicit, orice remediere rapidă care este furnizat într-un SQL Server service pack este inclus în următorul pachet service pack SQL Server.

Soluție


Pentru a rezolva această problemă, utilizați o expresie care are două atribute lângă la aceeași dimensiune din interogare. De exemplu, interogarea MDX conține următoarele:
WITH SET S AS CROSSJOIN([Product].[Large Photo].[Large Photo], [Product].[Product].[Product], [Customer].[Customer].[Customer])SELECT {} ON 0,
S.ITEM(1) ON 1
FROM [Adventureworks]


Stare


Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".