Partizionamento nel database di esempio AdventureWorks

In SQL Server sono disponibili due script Transact-SQL di esempio che è possibile eseguire nel database di esempio AdventureWorks per implementare uno scenario di partizionamento. Per informazioni sull'installazione e l'esecuzione degli script, vedere Readme_PartitioningScript e ReadMe_SlidingWindow.

Il primo script, PartitionAW.sql, esegue il partizionamento delle tabelle di AdventureWorks, TransactionHistory e TransactionHistoryArchive. La tabella TransactionHistory contiene i record delle vendite dell'anno corrente. Questa tabella viene utilizzata principalmente per l'inserimento di nuovi record e per il loro aggiornamento quando necessario. La tabella TransactionHistoryArchive contiene i record delle vendite precedenti l'anno corrente. Questa tabella viene utilizzata principalmente per le query SELECT e come tabella di gestione temporanea per lo spostamento di dati in un data warehouse. Per ulteriori informazioni sulla progettazione del partizionamento di queste tabelle, vedere Linee guida per la pianificazione di tabelle e indici partizionati.

In una situazione reale, le tabelle TransactionHistory e TransactionHistoryArchive diventerebbero due delle tabelle più grandi del database. Partizionando queste due tabelle è possibile gestire tra di esse subset di dati mensili. Ogni mese, il mese meno recente di dati viene spostato da TransactionHistory in TransactionHistoryArchive. In questo modo i dati di TransactionHistory rimangono aggiornati per le operazioni INSERT e UPDATE, mentre i dati più vecchi vengono spostati in TransactionHistoryArchive per la ripulitura e l'analisi. Dal momento che le tabelle sono partizionate, in genere il trasferimento di "blocchi" mensili di dati tra le tabelle richiede pochi secondi, anziché richiedere minuti o ore come avveniva nelle versioni precedenti. Questo è dovuto al fatto che si tratta di un'operazione sui soli metadati e non di uno spostamento fisico dei dati.

Il secondo script, Sliding.sql, implementa una "finestra scorrevole" per un mese di dati. Per ulteriori informazioni su questo script, vedere Progettazione di partizioni per la gestione di subset di dati.