Se você tem uma tabela particionada no SQL Server e agora deseja executar uma consulta que inclua o número da partição em cada linha retornada pela consulta, você pode usar o
$PARTITION
função do sistema para fazer exatamente isso. A
$PARTITION
A função retorna o número da partição na qual um conjunto de valores de coluna de particionamento seria mapeado para qualquer função de partição especificada. Você pode, portanto, usá-lo em seu
SELECT
instrução para retornar a partição à qual cada linha pertence. Exemplo
Aqui está um exemplo para demonstrar.
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 | +---------+-------------+-------------+
Nesse caso, as linhas são distribuídas entre as partições 2 e 3.
A partição 1 está vazia (assim como a partição 4), de acordo com a recomendação da Microsoft de deixar as partições em ambas as extremidades vazias, para eliminar a movimentação de dados caso as partições sejam divididas ou mescladas.