Linee guida per la pianificazione di tabelle e indici partizionati
Prima di partizionare una tabella o un indice, pianificare la creazione degli oggetti di database seguenti:
Funzione di partizione
Schema di partizione
Una funzione di partizione definisce la modalità con cui viene eseguito il mapping tra le righe di una tabella o di un indice e un set di partizioni in base ai valori di colonne specifiche, definite colonne di partizionamento.
Uno schema di partizione consente di eseguire il mapping tra ogni partizione specificata dalla funzione di partizione e un filegroup.
Pianificazione della funzione di partizione
Quando si pianifica una funzione di partizione, considerare due fattori: la colonna i cui valori determinano la modalità di partizionamento di una tabella, detta colonna di partizionamento, e l'intervallo di valori della colonna di partizionamento per ogni partizione. Questo intervallo di valori determina il numero di partizioni che costituiscono la tabella. In una tabella possono essere presenti al massimo 1000 partizioni.
Le opzioni disponibili per la colonna di partizionamento e per l'intervallo di valori sono determinate principalmente dalla possibilità di raggruppare i dati in modo logico, ad esempio per data, e dal fatto che tale raggruppamento logico sia più o meno adeguato per la gestione dei subset di dati.
Nello scenario di partizionamento del database di esempio AdventureWorks, le tabelle TransactionHistory e TransactionHistoryArchive sono ad esempio partizionate nel campo TransactionDate. L'intervallo di valori per ogni partizione corrisponde a un mese. Nella tabella TransactionHistory vengono conservate le transazioni più recenti dell'anno, mentre nella tabella TransactionHistoryArchive sono presenti le transazioni meno recenti. Eseguendo la partizione della tabella in questo modo, è possibile trasferire in modo rapido ed efficiente i dati di un intero mese dalla tabella TransactionHistory a TransactionHistoryArchive a intervalli mensili.
Per ulteriori informazioni su questo scenario specifico, vedere Progettazione di partizioni per la gestione di subset di dati.
Qualsiasi colonna il cui tipo di dati possa essere utilizzato come chiave di indice può anche essere utilizzata come colonna di partizionamento, ad esclusione del tipo di dati timestamp, dei tipi di dati CLR (Common Language Runtime) Microsoft.NET Framework definiti dall'utente e dei tipi di dati alias. Per ulteriori informazioni, vedere Creazione di tabelle e di indici partizionati.
Pianificazione dello schema di partizione
Quando si pianifica lo schema di partizione, è necessario stabilire in quale o in quali filegroup si desidera posizionare le partizioni. Il principale motivo per cui inserire le partizioni in filegroup separati consiste nel fatto che in tal modo è possibile eseguire operazioni di backup nelle partizioni in modo indipendente, in quanto è possibile eseguire backup in filegroup singoli. Per ulteriori informazioni, vedere Backup e ripristino di database in SQL Server.
Importante |
---|
SQL Server non garantisce il completamento delle query con accesso a una tabella partizionata se i file che appartengono a uno o più filegroup della tabella non sono in uno stato ONLINE, indipendentemente dalle partizioni a cui la query accede. |