sql >> Database >  >> RDS >> Sqlserver

Retourneer het partitienummer voor elke rij bij het opvragen van een gepartitioneerde tabel in SQL Server (T-SQL)

Als u een gepartitioneerde tabel in SQL Server hebt en u wilt nu een query uitvoeren die het partitienummer bevat op elke rij die door de query wordt geretourneerd, kunt u de $PARTITION gebruiken systeemfunctie om precies dat te doen.

De $PARTITION functie retourneert het partitienummer waarin een set partitiekolomwaarden zou worden toegewezen voor een gespecificeerde partitiefunctie.

Je kunt het daarom gebruiken in je SELECT statement om de partitie te retourneren waartoe elke rij behoort.

Voorbeeld

Hier is een voorbeeld om te demonstreren.

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

Resultaat:

+---------+-------------+-------------+
| 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 dit geval worden de rijen verdeeld over partities 2 en 3.

Partitie 1 is leeg (net als partitie 4), in overeenstemming met de aanbeveling van Microsoft om partities aan beide uiteinden leeg te laten, om gegevensverplaatsing te voorkomen in het geval dat partities worden gesplitst of samengevoegd.


  1. Berekening van de gemiddelde voorraadkosten in SQL

  2. Hoe maak je een verwijderde tabel opnieuw aan met Django Migrations?

  3. De startpagina van Oracle 10g express komt niet beschikbaar

  4. Hoe DevOps DBaaS (Database-as-a-Service) zou moeten gebruiken om hun applicatie-ontwikkeling te optimaliseren