Condividi tramite


Progettazione di aggregazioni (XMLA)

Le progettazioni delle aggregazioni sono associate alle partizioni di un gruppo di misure specifico per garantire che utilizzino la stessa struttura nell'archiviazione delle aggregazioni. L'uso della stessa struttura di archiviazione per le partizioni consente di definire facilmente le partizioni che possono essere unite in un secondo momento usando il comando MergePartitions . Per altre informazioni sulle progettazioni di aggregazioni, vedere Aggregazioni e progetti di aggregazione.

Per definire le aggregazioni per una progettazione di aggregazione, è possibile usare il comando DesignAggregations in XML for Analysis (XMLA). Al comando DesignAggregations sono associate proprietà che identificano quale progettazione delle aggregazioni utilizzare come riferimento e il modo in cui controllare il processo di progettazione in base a tale riferimento. L'utilizzo del comando DesignAggregations e delle proprietà relative consente di progettare le aggregazioni in modo iterativo oppure in batch e di visualizzare successivamente le statistiche relative alla progettazione risultanti per valutare il processo di progettazione.

Specifica di una progettazione delle aggregazioni

La proprietà Object del DesignAggregations comando deve contenere un riferimento a un oggetto a una progettazione di aggregazione esistente. Il riferimento all'oggetto contiene un identificatore di database, un identificatore di cubo, un identificatore del gruppo di misure e un identificatore della progettazione delle aggregazioni. Se la progettazione delle aggregazioni non esiste, si verifica un errore.

Controllo del processo di progettazione

Per controllare l'algoritmo utilizzato per definire le aggregazioni per la relativa progettazione, è possibile utilizzare le proprietà del comando DesignAggregations seguenti:

  • La proprietà Steps determina il numero di iterazioni che il comando deve eseguire prima di restituire il DesignAggregations controllo all'applicazione client.

  • La proprietà Time determina il numero di millisecondi che il comando deve richiedere prima di restituire il DesignAggregations controllo all'applicazione client.

  • La proprietà Optimization determina la percentuale stimata di miglioramento delle prestazioni che il DesignAggregations comando deve provare a ottenere. Se si progettano le aggregazioni in modo iterativo, è necessario inviare questa proprietà solo al primo comando.

  • La proprietà Storage determina la quantità stimata di archiviazione su disco, in byte, utilizzata dal DesignAggregations comando. Se si progettano le aggregazioni in modo iterativo, è necessario inviare questa proprietà solo al primo comando.

  • La proprietà Materialize determina se il comando deve creare le aggregazioni definite durante il DesignAggregations processo di progettazione. Se si progettano le aggregazioni in modo iterativo, questa proprietà deve essere impostata su false fino a quando non è possibile salvare le aggregazioni progettate. Quando la proprietà viene impostata su true, il processo di progettazione corrente termina e le aggregazioni definite vengono aggiunte alla progettazione delle aggregazioni specificata.

Specifica di query

Il comando DesignAggregations supporta il comando di ottimizzazione basata sull'utilizzo includendo uno o più Query elementi nella proprietà Query . La Queries proprietà può contenere uno o più elementi Query . Se la proprietà Queries non contiene alcun elemento Query, la progettazione delle aggregazioni specificata nell'elemento Object utilizza una struttura predefinita che contiene un set generale di aggregazioni appositamente progettato per soddisfare i criteri specificati nelle proprietà Optimization e Storage del comando DesignAggregations.

Ogni elemento Query rappresenta una query di tipo goal utilizzata dal processo di progettazione per definire le aggregazioni destinate alle query utilizzate più di frequente. È possibile specificare le query di obiettivo personalizzate oppure usare le informazioni archiviate da un'istanza di Microsoft SQL Server Analysis Services nel log delle query per recuperare informazioni sulle query più usate di frequente. Il log di query viene utilizzato dall'Ottimizzazione guidata basata sulle statistiche di utilizzo per recuperare query di tipo goal in base all'ora, all'utilizzo oppure all'utente specificato quando viene inviato un comando DesignAggregations. Per altre informazioni, vedere Guidata Ottimizzazione guidata basata sull'utilizzo.

Se si progettano in modo iterativo le aggregazioni, è necessario passare solo le query di obiettivo nel primo DesignAggregations comando perché l'istanza di Analysis Services archivia queste query di obiettivo e usa queste query durante i comandi successivi DesignAggregations . Dopo avere passato query di tipo goal al primo comando DesignAggregations di un processo iterativo, qualsiasi comando DesignAggregations successivo che contiene query di tipo goal nella proprietà Queries genera un errore.

L'elemento Query contiene un valore delimitato da virgole in cui sono presenti gli argomenti seguenti:

Frequency,Dataset[,Dataset...]

Frequenza
Fattore di ponderazione corrispondente al numero di volte che la query è stata eseguita in precedenza. Se l'elemento Query rappresenta una nuova query, il valore Frequenza rappresenta il fattore di peso utilizzato dal processo di progettazione per valutare la query. Con l'aumentare del valore della frequenza, aumenta il peso associato alla query durante il processo di progettazione.

Set di dati
Stringa numerica che specifica gli attributi di una dimensione da includere nella query. Questa stringa deve avere un numero di caratteri uguale al numero di attributi della dimensione. Il valore zero (0) indica che l'attributo nella posizione ordinale specificata non è incluso nella query per la dimensione specificata, mentre il valore uno (1) indica che l'attributo nella posizione ordinale specificata è incluso nella query per la dimensione specificata.

La stringa "011" fa riferimento ad esempio a una query relativa a una dimensione con tre attributi, di cui il secondo e il terzo sono inclusi nella query.

Nota

Alcuni attributi non vengono considerati nel set di dati. Per altre informazioni sugli attributi esclusi, vedere Elemento query (XMLA).

Ogni dimensione del gruppo di misure contenente la progettazione di aggregazione è rappresentata da un valore Set di dati nell'elemento Query . L'ordine dei valori Dataset deve corrispondere all'ordine delle dimensioni incluse nel gruppo di misure.

Progettazione di aggregazioni tramite processi iterativi o elaborazioni batch

È possibile utilizzare il comando DesignAggregations come parte di un processo iterativo o di un'elaborazione batch, in base all'interattività richiesta dal processo di progettazione.

Progettazione di aggregazioni tramite un processo iterativo

Per progettare le aggregazioni in modo iterativo, inviare più comandi DesignAggregations per fornire un controllo accurato sul processo di progettazione. Questo approccio viene utilizzato anche dalla Progettazione guidata aggregazioni per ottenere lo stesso scopo. Per altre informazioni, vedere Guidata Progettazione aggregazione F1.

Nota

Per progettare in modo iterativo le aggregazioni, è necessaria una sessione esplicita. Per altre informazioni sulle sessioni esplicite, vedere Gestione di connessioni e sessioni (XMLA).

Per avviare il processo iterativo, inviare innanzitutto un comando DesignAggregations che contiene le informazioni seguenti:

  • Valori delle proprietà Storage e Optimization in base ai quali viene impostato l'intero processo di progettazione.

  • Valori delle proprietà Steps e Time in base ai quali viene limitato il primo passaggio del processo di progettazione.

  • Proprietà Queries che contiene le query di tipo goal in base alle quali viene impostato l'intero processo di progettazione, qualora si desideri l'ottimizzazione basata sulle statistiche di utilizzo.

  • Proprietà Materialize impostata su false. L'impostazione di questa proprietà su false indica che durante il processo di progettazione le aggregazioni definite non vengono salvate nella progettazione delle aggregazioni quando il comando è completato.

Quando termina, il primo comando DesignAggregations restituisce un set di righe che contiene le statistiche relative alla progettazione. È possibile valutare tali statistiche per determinare se il processo di progettazione deve continuare o se è completato. Se il processo deve continuare, inviare un altro comando DesignAggregations che contiene i valori Steps e Time con i quali viene limitato questo passaggio del processo di progettazione. È possibile valutare le statistiche risultanti e successivamente determinare se il processo di progettazione deve continuare. Questo processo iterativo costituito dall'invio di comandi DesignAggregations e dalla valutazione dei risultati continua fino a quando non si raggiungono gli obiettivi e non si ottiene un set appropriato di aggregazioni definite.

Dopo avere ottenuto il set di aggregazioni desiderato, inviare un comando DesignAggregations finale. Le proprietà DesignAggregations e Steps di tale comando Materialize finale devono essere impostate su 1 e su true rispettivamente. Utilizzando queste impostazioni il comando DesignAggregations finale completa il processo di progettazione e salva l'aggregazione definita nella progettazione delle aggregazioni.

Progettazione di aggregazioni tramite un'elaborazione batch

È inoltre possibile progettare le aggregazioni in un'elaborazione batch inviando un unico comando DesignAggregations che contiene i valori delle proprietà Steps, Time, Storage e Optimization in base ai quali viene impostato e limitato l'intero processo di progettazione. Qualora si desideri l'ottimizzazione basata sulle statistiche di utilizzo, nella proprietà Queries devono essere incluse anche le query di tipo goal in base alle quali viene impostato il processo di progettazione. È inoltre necessario verificare che la proprietà Materialize sia impostata su true, in modo che durante il processo di progettazione le aggregazioni definite vengano salvate nella progettazione delle aggregazioni quando il comando termina.

È possibile progettare aggregazioni tramite un'elaborazione batch in una sessione implicita oppure in una esplicita. Per altre informazioni sulle sessioni implicite ed esplicite, vedere Gestione di connessioni e sessioni (XMLA).

Restituzione di statistiche relative alla progettazione

Quando il comando DesignAggregations restituisce il controllo all'applicazione client, viene restituito anche un set di righe contenente un'unica riga che rappresenta le statistiche relative alla progettazione per il comando. Nel set di righe sono contenute le colonne elencate nella tabella seguente.

Colonna Tipo di dati Descrizione
Passaggi Integer Numero di passaggi eseguiti dal comando prima di restituire il controllo all'applicazione client.
Ora Long integer Numero di millisecondi necessari al comando prima di restituire il controllo all'applicazione client.
Optimization Double Percentuale stimata di miglioramento delle prestazioni ottenuta dal comando prima di restituire il controllo all'applicazione client.
Archiviazione Long integer Numero stimato di byte necessari al comando prima di restituire il controllo all'applicazione client.
Aggregations Long integer Numero di aggregazioni definite dal comando prima di restituire il controllo all'applicazione client.
LastStep Boolean Indica se i dati nel set di righe rappresentano l'ultimo passaggio del processo di progettazione. Se la Materialize proprietà del comando è stata impostata su true, il valore di questa colonna è impostato su true.

È possibile utilizzare le statistiche relative alla progettazione contenute nel set di righe restituito dopo ogni comando DesignAggregations sia nella progettazione di tipo iterativo che in quella di tipo batch. Nella progettazione di tipo iterativo è possibile utilizzare le statistiche relative alla progettazione per determinare e visualizzare lo stato di avanzamento. Quando si progettano le aggregazioni in batch, è possibile utilizzare le statistiche relative alla progettazione per determinare il numero di aggregazioni create dal comando.

Vedere anche

Sviluppo con XMLA in Analysis Services