Si vous avez une table partitionnée dans SQL Server et que vous souhaitez maintenant exécuter une requête qui inclut le numéro de partition sur chaque ligne renvoyée par la requête, vous pouvez utiliser le $PARTITION
fonction système pour faire exactement cela.
La $PARTITION
renvoie le numéro de partition dans lequel un ensemble de valeurs de colonne de partitionnement serait mappé pour toute fonction de partition spécifiée.
Vous pouvez donc l'utiliser dans votre SELECT
pour renvoyer la partition à laquelle appartient chaque ligne.
Exemple
Voici un exemple pour illustrer.
SELECT
CatId,
CatName,
$PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;
Résultat :
+---------+-------------+-------------+ | 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 | +---------+-------------+-------------+
Dans ce cas, les lignes sont réparties entre les partitions 2 et 3.
La partition 1 est vide (tout comme la partition 4), conformément à la recommandation de Microsoft de laisser les partitions vides aux deux extrémités, pour éliminer le mouvement des données en cas de division ou de fusion des partitions.