Als u een gepartitioneerde tabel in SQL Server hebt en u wilt nu een query uitvoeren die het partitienummer bevat op elke rij die door de query wordt geretourneerd, kunt u de $PARTITION
gebruiken systeemfunctie om precies dat te doen.
De $PARTITION
functie retourneert het partitienummer waarin een set partitiekolomwaarden zou worden toegewezen voor een gespecificeerde partitiefunctie.
Je kunt het daarom gebruiken in je SELECT
statement om de partitie te retourneren waartoe elke rij behoort.
Voorbeeld
Hier is een voorbeeld om te demonstreren.
SELECT
CatId,
CatName,
$PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;
Resultaat:
+---------+-------------+-------------+ | 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 dit geval worden de rijen verdeeld over partities 2 en 3.
Partitie 1 is leeg (net als partitie 4), in overeenstemming met de aanbeveling van Microsoft om partities aan beide uiteinden leeg te laten, om gegevensverplaatsing te voorkomen in het geval dat partities worden gesplitst of samengevoegd.