Wenn Sie eine partitionierte Tabelle in SQL Server haben und jetzt eine Abfrage ausführen möchten, die die Partitionsnummer in jeder von der Abfrage zurückgegebenen Zeile enthält, können Sie den $PARTITION
verwenden Systemfunktion, um genau das zu tun.
Die $PARTITION
Die Funktion gibt die Partitionsnummer zurück, in die ein Satz von Partitionierungsspaltenwerten für eine beliebige angegebene Partitionsfunktion abgebildet würde.
Sie können es daher in Ihrem SELECT
verwenden -Anweisung, um die Partition zurückzugeben, zu der jede Zeile gehört.
Beispiel
Hier ist ein Beispiel zur Veranschaulichung.
SELECT
CatId,
CatName,
$PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;
Ergebnis:
+---------+-------------+-------------+ | 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 diesem Fall werden die Zeilen auf die Partitionen 2 und 3 verteilt.
Partition 1 ist leer (ebenso wie Partition 4), gemäß der Empfehlung von Microsoft, Partitionen an beiden Enden leer zu lassen, um Datenbewegungen zu vermeiden, falls Partitionen geteilt oder zusammengeführt werden.