Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zwróć numer partycji dla każdego wiersza podczas wysyłania zapytań do tabeli partycjonowanej w SQL Server (T-SQL)

Jeśli masz podzieloną na partycje tabelę w SQL Server i chcesz teraz uruchomić zapytanie zawierające numer partycji w każdym wierszu zwróconym przez zapytanie, możesz użyć $PARTITION funkcja systemu, aby to zrobić.

$PARTITION funkcja zwraca numer partycji, na który zestaw wartości kolumn partycjonujących zostanie zmapowany dla dowolnej określonej funkcji partycji.

Dlatego możesz go użyć w swoim SELECT instrukcja zwracająca partycję, do której należy każdy wiersz.

Przykład

Oto przykład do zademonstrowania.

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

Wynik:

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

W tym przypadku wiersze są rozdzielone między partycje 2 i 3.

Partycja 1 jest pusta (podobnie jak partycja 4), zgodnie z zaleceniem Microsoftu, aby pozostawić partycje na obu końcach puste, aby wyeliminować przenoszenie danych w przypadku podziału lub łączenia partycji.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. datetime vs datetime2 w SQL Server:jaka jest różnica?

  2. Jak połączyć się z MS SQL Server za pomocą Inno Setup?

  3. Hierarchia technologii pamięci/magazynowania i SQL Server

  4. Demistyfikacja typów oczekiwania CXPACKET i CXCONSUMER w SQL Server

  5. Jak włączyć kompresję w istniejącej tabeli w SQL Server (T-SQL)