Si tiene una tabla particionada en SQL Server y ahora desea ejecutar una consulta que incluya el número de partición en cada fila devuelta por la consulta, puede usar el $PARTITION
función del sistema para hacer precisamente eso.
La $PARTITION
devuelve el número de partición en el que se asignaría un conjunto de valores de columna de partición para cualquier función de partición especificada.
Por lo tanto, puede usarlo en su SELECT
instrucción para devolver la partición a la que pertenece cada fila.
Ejemplo
Aquí hay un ejemplo para demostrarlo.
SELECT
CatId,
CatName,
$PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;
Resultado:
+---------+-------------+-------------+ | 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 | +---------+-------------+-------------+
En este caso, las filas se distribuyen entre las particiones 2 y 3.
La partición 1 está vacía (al igual que la partición 4), de acuerdo con la recomendación de Microsoft de dejar las particiones vacías en ambos extremos, para eliminar el movimiento de datos en caso de que las particiones se dividan o fusionen.