Condividi tramite


Spazio del cubo

Si applica a: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

Lo spazio del cubo è il prodotto dei membri delle gerarchie dell'attributo di un cubo per le misure del cubo. Quindi lo spazio del cubo è determinato dal prodotto combinatorio di tutti i membri della gerarchia dell'attributo nel cubo e delle misure del cubo e definisce la dimensione massima del cubo. È importante notare che questo spazio include tutte le possibili combinazioni di membri della gerarchia di attributi; anche combinazioni che potrebbero essere ritenute impossibili nel mondo reale, ovvero combinazioni in cui la città è Parigi e i paesi/aree geografiche sono Inghilterra o Spagna o Giappone o India o altrove.

Spazio del cubo e Auto Exist

Il concetto di Auto Exist limita questo spazio del cubo alle celle effettivamente esistenti. È possibile che membri di una gerarchia dell'attributo non contengano membri di un'altra gerarchia dell'attributo nella stessa dimensione.

Se, ad esempio, si dispone di un cubo con una gerarchia dell'attributo City, una gerarchia dell'attributo Country e una misura Internet Sales Amount, lo spazio di questo cubo include solo i membri che esistono in ogni livello superiore. Ad esempio, se la gerarchia dell'attributo City include le città di New York, Londra, Parigi, Tokyo e Melbourne; e la gerarchia dell'attributo Country include i paesi/aree geografiche Stati Uniti, Regno Unito, Francia, Giappone e Australia, quindi lo spazio del cubo non include lo spazio (cella) all'intersezione di Parigi e Stati Uniti.

Quando si esegue una query su celle inesistenti, tali celle restituiscono valori Null, cioè non possono contenere calcoli e non è possibile definire un calcolo esegua operazioni di scrittura in questo spazio. L'istruzione seguente, ad esempio, include celle che non esistono.

SELECT [Customer].[Gender].[Gender].Members ON COLUMNS,  
{[Customer].[Customer].[Aaron A. Allen]  
   ,[Customer].[Customer].[Abigail Clark]} ON ROWS   
FROM [Adventure Works]  
WHERE Measures.[Internet Sales Amount]  

Nota

In questa query viene usata la funzione Members (Set) (MDX) per restituire il set di membri della gerarchia dell'attributo Gender sull'asse delle colonne e questo set viene incrociato con il set di membri specificato della gerarchia dell'attributo Customer sull'asse delle righe.

Quando si esegue la query precedente, nella cella nel punto di intersezione tra Aaron A. Allen e Female viene visualizzato un valore null. Analogamente, viene visualizzato un valore Null nella cella nel punto di intersezione tra Abigail Clark e Male. Sebbene non esistano e non possano contenere valori, le celle inesistenti possono essere visualizzate nel risultato restituito da una query.

Quando si usa la funzione Crossjoin (MDX) per restituire il prodotto incrociato dei membri della gerarchia dell'attributo dalle gerarchie dell'attributo nella stessa dimensione, Auto Exist limita le tuple da restituire al set di tuple effettivamente esistenti, invece di restituire un prodotto cartesiano completo. Ad esempio, eseguire e quindi esaminare i risultati dell'esecuzione della query seguente.

SELECT CROSSJOIN  
   (  
      {[Customer].[Country].[United States]},  
         [Customer].[State-Province].Members  
  ) ON 0   
FROM [Adventure Works]  
WHERE Measures.[Internet Sales Amount]  

Nota

Si noti che per designare l'asse delle colonne viene utilizzato 0, la forma abbreviata per Axis(0), indicante l'asse delle colonne.

La query precedente restituisce solo le celle dei membri di ogni gerarchia dell'attributo della query che esistono in ogni livello superiore. La query precedente può anche essere scritta con la nuova variante * della funzione * (Crossjoin) (MDX) .

SELECT   
   [Customer].[Country].[United States] *   
      [Customer].[State-Province].Members  
ON 0   
FROM [Adventure Works]  
WHERE Measures.[Internet Sales Amount]  

La query precedente può anche essere scritta nel modo seguente:

SELECT [Customer].[State-Province].Members  
ON 0   
FROM [Adventure Works]  
WHERE (Measures.[Internet Sales Amount],  
   [Customer].[Country].[United States])  

I valori delle celle restituiti saranno identici, sebbene i metadati nel set di risultati saranno diversi. Con la query precedente, ad esempio, la gerarchia Country è stata spostata sull'asse di sezionamento (nella clausola WHERE) e pertanto non viene visualizzata in modo esplicito nel set di risultati.

Ognuna di queste tre query precedenti illustra l'effetto del comportamento esistente automaticamente in SQL Server SQL Server Analysis Services.

Gerarchie definite dall'utente e spazio del cubo

Negli esempi precedenti di questo argomento vengono definite le posizioni nello spazio del cubo utilizzando le gerarchie dell'attributo. È tuttavia possibile definire una posizione nello spazio del cubo anche utilizzando gerarchie definite dall'utente in base alle gerarchie dell'attributo in una dimensione. Una gerarchia definita dall'utente è una gerarchia di gerarchie dell'attributo utilizzata per facilitare l'esplorazione dei dati del cubo da parte degli utenti.

È ad esempio possibile scrivere la query CROSSJOIN della sezione precedente anche come segue:

SELECT CROSSJOIN  
   (  
      {[Customer].[Country].[United States]},  
         [Customer].[Customer Geography].[State-Province].Members  
   )   
ON 0   
FROM [Adventure Works]  
WHERE Measures.[Internet Sales Amount]  

Nella query precedente la gerarchia definita dall'utente Customer Geography all'interno della dimensione Customer viene utilizzata per definire la posizione nello spazio del cubo definita in precedenza utilizzando una gerarchia dell'attributo. La medesima posizione nello spazio del cubo può essere definita utilizzando gerarchie dell'attributo o gerarchie definite dall'utente.

Relazioni tra attributi e spazio del cubo

La definizione delle relazioni tra attributi correlati migliora le prestazioni delle query (facilitando la creazione di aggregazioni appropriate) e influisce sul membro di una gerarchia dell'attributo correlata che include un membro della gerarchia dell'attributo. Quando, ad esempio, si definisce una tupla che include un membro della gerarchia dell'attributo City e la tupla non definisce in modo esplicito il membro della gerarchia dell'attributo Country, ci si potrebbe aspettare che il membro predefinito della gerarchia dell'attributo Country fosse il membro correlato della gerarchia dell'attributo Country. Questo tuttavia si verifica solo se tra la gerarchia dell'attributo City e la gerarchia dell'attributo Country è definita una relazione tra attributi.

Nell'esempio seguente viene restituito il membro di una gerarchia dell'attributo correlata non inclusa in modo esplicito nella query.

WITH MEMBER Measures.x AS   
   Customer.Country.CurrentMember.Name  
SELECT Measures.x ON 0,  
Customer.City.Members ON 1  
FROM [Adventure Works]  

Nota

Si noti che viene utilizzata la parola chiave WITH con le funzioni CurrentMember (MDX) e Name (MDX) per creare un membro calcolato da usare nella query. Per altre informazioni, vedere Query MDX (MDX) di base.

Nella query precedente, viene restituito il nome del membro della gerarchia dell'attributo Country associata a ogni membro della gerarchia dell'attributo State. Viene visualizzato il membro Country previsto, perché tra gli attributi City e Country è definita una relazione. Se tuttavia tra le gerarchie dell'attributo della stessa dimensione non venisse definita alcuna relazione tra attributi, verrebbe restituito il membro (Totale), come illustrato nella query seguente.

WITH MEMBER Measures.x AS   
   Customer.Education.Currentmember.Name  
SELECT Measures.x  ON 0,   
Customer.City.Members ON 1  
FROM [Adventure Works]  

Nella query precedente viene restituito il membro (Totale) ("All Customers"), perché non esiste alcuna relazione tra Education e City. Pertanto, il membro (Totale) della gerarchia dell'attributo Education sarà il membro predefinito della gerarchia dell'attributo Education utilizzata in qualsiasi tupla con la gerarchia dell'attributo City dove nessun membro Education è specificato in modo esplicito.

Contesto di calcolo

Vedere anche

Concetti chiave di MDX (Analysis Services)
Tuple
Auto Exist
Utilizzo di membri, tuple e set (MDX)
Totali visualizzati e non visualizzati
Guida di riferimento al linguaggio MDX
Guida di riferimento a MDX (Multidimensional Expressions)