Se hai una tabella partizionata in SQL Server e ora vuoi eseguire una query che includa il numero di partizione su ogni riga restituita dalla query, puoi utilizzare $PARTITION
funzione di sistema per fare proprio questo.
Il $PARTITION
funzione restituisce il numero di partizione in cui verrebbe mappato un insieme di valori di colonne di partizionamento per qualsiasi funzione di partizione specificata.
Puoi quindi usarlo nel tuo SELECT
istruzione per restituire la partizione a cui appartiene ciascuna riga.
Esempio
Ecco un esempio da dimostrare.
SELECT
CatId,
CatName,
$PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;
Risultato:
+---------+-------------+-------------+ | CatId | CatName | Partition | |---------+-------------+-------------| | 1 | Meow | 2 | | 2 | Fluffy | 2 | | 3 | Scratch | 2 | | 4 | Bulldog | 2 | | 5 | King George | 2 | | 6 | Sharp | 3 | | 7 | Fritz | 3 | | 8 | Garfield | 3 | | 9 | Boss | 3 | +---------+-------------+-------------+
In questo caso, le righe sono distribuite tra le partizioni 2 e 3.
La partizione 1 è vuota (come la partizione 4), in conformità con la raccomandazione di Microsoft di lasciare vuote le partizioni su entrambe le estremità, per eliminare lo spostamento dei dati negli eventi, le partizioni vengono divise o unite.