Elaborazione e modalità di archiviazione delle partizioni
La modalità di archiviazione di una partizione influisce sulle prestazioni di esecuzione delle query e di elaborazione e su requisiti e percorsi di archiviazione della partizione e del relativo cubo e gruppo di misure padre. La scelta della modalità di archiviazione influisce inoltre sulle opzioni di elaborazione.
Una partizione può utilizzare una delle tre modalità di archiviazione di base seguenti:
OLAP multidimensionale (MOLAP)
OLAP relazionale (ROLAP)
OLAP ibrido (HOLAP)
Microsoft SQL Server Analysis Services supporta tutte e tre le modalità di archiviazione di base. Supporta inoltre il caching attivo, che consente di combinare le caratteristiche dell'archiviazione ROLAP e MOLAP ai fini dell'attualità dei dati e delle prestazioni di esecuzione delle query. Per ulteriori informazioni, vedere Caching attivo (partizioni).
MOLAP
La modalità di archiviazione MOLAP determina l'archiviazione delle aggregazioni della partizione e di una copia dei dati di origine in una struttura multidimensionale di Analysis Services durante l'elaborazione della partizione. Questa struttura MOLAP è ottimizzata in modo da garantire le massime prestazioni di esecuzione delle query. L'archiviazione può essere eseguita in un percorso sul computer in cui la partizione è definita o su un altro computer che esegue Analysis Services. Poiché una copia dei dati di origine risiede nella struttura multidimensionale, le query possono essere risolte senza accedere ai dati di origine della partizione. I tempi di risposta alle query possono essere ridotti significativamente utilizzando le aggregazioni. I dati nella struttura MOLAP della partizione sono aggiornati all'elaborazione più recente della partizione.
Poiché i dati di origine vengono modificati, gli oggetti nell'archivio MOLAP devono essere elaborati periodicamente in modo da incorporare tali modifiche e renderle disponibili agli utenti. L'elaborazione determina l'aggiornamento completo o incrementale dei dati nella struttura MOLAP. L'intervallo di tempo tra un'elaborazione e quella successiva crea un periodo di latenza durante il quale i dati negli oggetti OLAP potrebbero non corrispondere ai dati di origine. È possibile eseguire l'aggiornamento completo o incrementale degli oggetti nell'archivio MOLAP senza porre la partizione o il cubo in modalità non in linea. In alcune situazioni, tuttavia, può essere necessario porre un cubo in modalità non in linea per elaborare determinate modifiche strutturali agli oggetti OLAP. Il tempo di inattività necessario per aggiornare l'archivio MOLAP può essere ridotto al minimo aggiornando ed elaborando i cubi su un server dell'area di gestione temporanea e utilizzando la sincronizzazione di database per copiare gli oggetti elaborati nel server di produzione. È inoltre possibile utilizzare il caching attivo per ridurre al minimo la latenza e ottimizzare la disponibilità mantenendo la maggior parte dei vantaggi offerti in termini di prestazioni dall'archiviazione MOLAP. Per ulteriori informazioni, vedere Caching attivo (partizioni), Sincronizzazione di database di Analysis Services e Elaborazione di oggetti di Analysis Services.
ROLAP
La modalità di archiviazione ROLAP determina l'archiviazione delle aggregazioni della partizione in viste indicizzate del database relazionale specificato nell'origine dei dati della partizione. A differenza della modalità di archiviazione MOLAP, la modalità ROLAP non prevede l'archiviazione di una copia dei dati di origine nelle cartelle dei dati di Analysis Services. Quando non è possibile derivare risultati dalla cache delle query, per rispondere alle query viene invece eseguito l'accesso alle viste indicizzate dell'origine dei dati. I tempi di risposta alle query sono in genere più lenti con la modalità di archiviazione ROLAP rispetto alle modalità di archiviazione MOLAP e HOLAP, così come sono in genere più lenti i tempi di elaborazione con ROLAP. La modalità ROLAP consente inoltre agli utenti di visualizzare i dati in tempo reale e di risparmiare spazio di archiviazione quando si utilizzano set di dati di grandi dimensioni su cui vengono raramente eseguite query, ad esempio dati esclusivamente cronologici.
Nota
Quando si utilizza ROLAP, in caso di combinazione di join con una clausola GROUP BY è possibile che Analysis Services restituisca informazioni non corrette relativamente al membro sconosciuto. Analysis Services elimina infatti gli errori di integrità relazionale invece di restituire il valore del membro sconosciuto.
Se una partizione utilizza la modalità di archiviazione ROLAP e i dati di origine sono archiviati in Motore di database di SQL Server, Analysis Services cerca di creare viste indicizzate per contenere le aggregazioni della partizione. Se Analysis Services non è in grado di creare viste indicizzate, non vengono create tabelle di aggregazione. Sebbene i requisiti della sessione per la creazione di viste indicizzate in Motore di database di SQL Server vengano gestiti da Analysis Services, è necessario che la partizione ROLAP e le tabelle nel relativo schema soddisfino le condizioni seguenti in modo che Analysis Services sia in grado di creare viste indicizzate per le aggregazioni:
La partizione non può contenere misure che utilizzano funzioni di aggregazione Min o Max.
Ogni tabella nello schema della partizione ROLAP deve essere utilizzata una sola volta. Lo schema non può ad esempio contenere le stringhe [dbo].[address] AS "Customer Address" e [dbo].[address] AS "SalesRep Address".
Ogni tabella deve essere effettivamente una tabella e non una vista.
Tutti i nomi di tabella presenti nello schema della partizione devono essere qualificati con il nome del proprietario, ad esempio [dbo].[customer].
Tutte le tabelle nello schema della partizione devono avere lo stesso proprietario. Non è possibile, ad esempio, avere una clausola FROM che fa riferimento alle tabelle [tk].[customer], [john].[store] e [dave].[sales_fact_2004].
Le colonne di origine delle misure della partizione non devono ammettere valori Null.
Tutte le tabelle utilizzate nella vista devono essere state create attivando le opzioni seguenti:
ANSI_NULLS
QUOTED_IDENTIFIER
La dimensione totale della chiave di indice in Motore di database di SQL Server non può essere superiore a 900 byte. Questa condizione verrà verificata da Motore di database di SQL Server in base alle colonne chiave a lunghezza fissa durante l'elaborazione dell'istruzione CREATE INDEX. Se tuttavia nella chiave di indice sono incluse colonne a lunghezza variabile, questa condizione verrà inoltre verificata da Motore di database di SQL Server per ogni aggiornamento delle tabelle di base. Poiché aggregazioni diverse utilizzano definizioni di viste diverse, l'elaborazione ROLAP con viste indicizzate avrà esito positivo o negativo in base alla progettazione delle aggregazioni.
Nella sessione con cui viene creata la vista indicizzata le opzioni seguenti devono essere impostate su ON: ARITHABORT, CONCAT_NULL_YEILDS_NULL, QUOTED_IDENTIFIER, ANSI_NULLS, ANSI_PADDING e ANSI_WARNING. Questa impostazione può essere eseguita in SQL Server Management Studio.
Nella sessione con cui viene creata la vista indicizzata l'opzione NUMERIC_ROUNDABORT deve essere impostata su OFF. Questa impostazione può essere eseguita in SQL Server Management Studio.
HOLAP
La modalità di archiviazione HOLAP combina attributi sia di MOLAP che di ROLAP. Come MOLAP, la modalità HOLAP determina l'archiviazione delle aggregazioni della partizione in una struttura multidimensionale in un'istanza di SQL Server Analysis Services. HOLAP non prevede l'archiviazione di una copia dei dati di origine. Per le query che accedono esclusivamente ai dati di riepilogo nelle aggregazioni di una partizione, la modalità HOLAP equivale a MOLAP. Le query che accedono a dati di origine (ad esempio se si desidera eseguire il drill-down a una cella del cubo atomica per cui non sono disponibili dati aggregati) devono recuperare i dati dal database relazionale e risulteranno meno rapide rispetto alle query su dati di origine archiviati nella struttura MOLAP. Con la modalità di archiviazione HOLAP, gli utenti riscontrano in genere differenze significative nei tempi di esecuzione delle query a seconda che la query possa essere risolta dalla cache o dalle aggregazioni oppure dai dati di origine.
Le partizioni archiviate come HOLAP presentano dimensioni inferiori rispetto alle partizioni MOLAP equivalenti, poiché non contengono i dati di origine, e garantiscono tempi di risposta più rapidi rispetto alle partizioni ROLAP per le query in cui sono coinvolti dati di riepilogo. La modalità di archiviazione HOLAP è in genere appropriata per partizioni di cubi che necessitano di tempi di risposta alle query rapidi per riepiloghi basati su un'ingente quantità di dati di origine. Nei casi in cui gli utenti generano query che devono accedere ai dati a livello foglia, ad esempio per il calcolo di mediane, è in genere preferibile la modalità MOLAP.