Hvis du har en partitioneret tabel i SQL Server, og du nu vil køre en forespørgsel, der inkluderer partitionsnummeret på hver række, der returneres af forespørgslen, kan du bruge $PARTITION
systemfunktion til at gøre netop det.
$PARTITION
funktion returnerer det partitionsnummer, som et sæt af partitioneringskolonneværdier vil blive tilknyttet til en hvilken som helst specificeret partitionsfunktion.
Du kan derfor bruge det i din SELECT
sætning for at returnere den partition, som hver række tilhører.
Eksempel
Her er et eksempel til at demonstrere.
SELECT
CatId,
CatName,
$PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;
Resultat:
+---------+-------------+-------------+ | 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 | +---------+-------------+-------------+
I dette tilfælde er rækkerne fordelt mellem partition 2 og 3.
Partition 1 er tom (ligesom partition 4) i overensstemmelse med Microsofts anbefaling om at lade partitioner være tomme i begge ender for at eliminere databevægelse i tilfælde af, at partitioner opdeles eller flettes.