sql >> Database teknologi >  >> RDS >> Sqlserver

Returner partitionsnummeret for hver række, når du forespørger en partitioneret tabel i SQL Server (T-SQL)

Hvis du har en partitioneret tabel i SQL Server, og du nu vil køre en forespørgsel, der inkluderer partitionsnummeret på hver række, der returneres af forespørgslen, kan du bruge $PARTITION systemfunktion til at gøre netop det.

$PARTITION funktion returnerer det partitionsnummer, som et sæt af partitioneringskolonneværdier vil blive tilknyttet til en hvilken som helst specificeret partitionsfunktion.

Du kan derfor bruge det i din SELECT sætning for at returnere den partition, som hver række tilhører.

Eksempel

Her er et eksempel til at demonstrere.

SELECT 
    CatId,
    CatName,
    $PARTITION.CatsPartitionFunction(CatId) AS [Partition]
FROM Cats;

Resultat:

+---------+-------------+-------------+
| 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           |
+---------+-------------+-------------+

I dette tilfælde er rækkerne fordelt mellem partition 2 og 3.

Partition 1 er tom (ligesom partition 4) i overensstemmelse med Microsofts anbefaling om at lade partitioner være tomme i begge ender for at eliminere databevægelse i tilfælde af, at partitioner opdeles eller flettes.


  1. Hvilken MySQL-datatype der skal bruges til lagring af booleske værdier

  2. Kan ikke åbne databasetest anmodet af login. Login mislykkedes. Login mislykkedes for brugeren 'xyz\ASPNET'

  3. Hvordan kan jeg VÆLGE rækker med MAX(kolonneværdi), PARTITION efter en anden kolonne i MYSQL?

  4. WHERE IN-tilstand accepterer ikke strengværdi