Udostępnij za pomocą


sys.dm_db_partition_stats (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Database w Microsoft Fabric

Zwraca informacje o stronie i liczbie wierszy dla każdej partycji w aktualnej bazie danych.

Uwaga / Notatka

Aby wywołać to z usługi Azure Synapse Analytics lub Analytics Platform System (PDW), użyj nazwy sys.dm_pdw_nodes_db_partition_stats. partition_id w sys.dm_pdw_nodes_db_partition_stats różni się od partition_id w widoku sys.partitions katalogowym Azure Synapse Analytics. Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze Azure Synapse Analytics.

Nazwa kolumny Typ danych Description
partition_id bigint Identyfikator partycji. Jest to unikatowe w bazie danych. To ta sama wartość co w partition_id widoku sys.partitions katalogowym, z wyjątkiem Azure Synapse Analytics.
object_id int Identyfikator obiektu tabeli lub widoku indeksowego, którego częścią jest partycja.
index_id int ID sterty lub indeksu, którego częścią jest partycja.

0 = Sterta
1 = Indeks skupiony.
> 1 = indeks nieklastrowany
partition_number int 1 numer partycji w indeksie lub stercie.
in_row_data_page_count bigint Liczba stron używanych do przechowywania danych w wierszu na tej partycji. Jeśli partycja jest częścią kopca, wartość to liczba stron danych w stercie. Jeśli partycja jest częścią indeksu, wartość to liczba stron na poziomie liścia. (Strony nielistowe w drzewie B+ nie są uwzględnione w liczbie.) Strony IAM (Index Allocation Map) nie są uwzględnione w żadnym z tych przypadków. Zawsze 0 dla indeksu columnstore zoptymalizowanego pod pamięć xVelocity.
in_row_used_page_count bigint Całkowita liczba stron używanych do przechowywania i zarządzania danymi w wierszu w tej partycji. To liczenie obejmuje strony drzewa B+ bez liści, strony IAM oraz wszystkie strony w kolumnie in_row_data_page_count . Zawsze 0 dla indeksu columnstore.
in_row_reserved_page_count bigint Łączna liczba stron zarezerwowanych do przechowywania i zarządzania danymi w wierszu w tej partycji, niezależnie od tego, czy strony są używane, czy nie. Zawsze 0 dla indeksu columnstore.
lob_used_page_count bigint Liczba stron używanych do przechowywania i zarządzania tekstem spoza wiersza, ntextem, obrazem, varchar(max),nvarchar(max), varbinary(max) oraz kolumnami xml w ramach partycji. Strony IAM są dołączone.

Łączna liczba LOB-ów używanych do przechowywania i zarządzania indeksem columnstore w partycji.
lob_reserved_page_count bigint Całkowita liczba stron zarezerwowanych do przechowywania i zarządzania tekstem spoza wiersza, ntextem, obrazem, varchar(max), nvarchar(max), varbinary(max) oraz kolumnami xml w ramach partycji, niezależnie od tego, czy strony są używane, czy nie. Strony IAM są dołączone.

Łączna liczba LOB-ów zarezerwowanych do przechowywania i zarządzania indeksem columnstore w partycji.
row_overflow_used_page_count bigint Liczba stron używanych do przechowywania i zarządzania wierszami przepełniającymi się kolumnami varchar, nvarchar, varbinary i sql_variant w ramach partycji. Strony IAM są dołączone.

Zawsze 0 dla indeksu columnstore.
row_overflow_reserved_page_count bigint Łączna liczba stron zarezerwowanych do przechowywania i zarządzania kolumnami przepełniającymi wiersze varchar, nvarchar, varbinary i sql_variant w ramach partycji, niezależnie od tego, czy strony są używane, czy nie. Strony IAM są dołączone.

Zawsze 0 dla indeksu columnstore.
used_page_count bigint Całkowita liczba stron użytych do partycji. Obliczone jako in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint Łączna liczba stron zarezerwowanych na partycję. Obliczone jako in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint Przybliżona liczba wierszy w podziale.
pdw_node_id int Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW)

Identyfikator węzła, w ramach którego znajduje się ta dystrybucja.
distribution_id int Dotyczy do: Azure Synapse Analytics, Analytics Platform System (PDW)

Unikalny numeryczny identyfikator przypisany do rozkładu.

Uwagi

Dynamiczny sys.dm_db_partition_stats widok zarządzania (DMV) wyświetla informacje o przestrzeni używanej do przechowywania i zarządzania danymi LOB w wierszu oraz danymi przepełnienia wiersza dla wszystkich partycji w bazie danych. Na każdą partycję wyświetlany jest jeden wiersz.

Liczby, na których opiera się wynik, są buforowane w pamięci lub przechowywane na dysku w różnych tabelach systemowych.

Dane w wierszach, dane LOB oraz dane przepełnienia wiersza reprezentują trzy jednostki alokacji tworzące partycję. Widok katalogu sys.allocation_units może być zapytywany o metadane dotyczące każdej jednostki alokacji w bazie danych.

Jeśli sterta lub indeks nie jest podzielony na partie, składa się z jednej partycji (z numerem partycji = 1); dlatego dla tego sterta lub indeksu zwracany jest tylko jeden wiersz. Widok katalogu sys.partitions może być zapytywany o metadane dotyczące każdej partycji wszystkich tabel i indeksów w bazie danych.

Łączną liczbę dla pojedynczej tabeli lub indeksu można uzyskać, dodając liczby dla wszystkich odpowiednich podziałów.

Permissions

Wymaga VIEW DATABASE STATE uprawnień VIEW DEFINITION do zapytań w dynamicznym widoku sys.dm_db_partition_stats zarządzania. Więcej informacji o uprawnieniach w dynamicznych widokach zarządzania można znaleźć w Dynamicznych Widokach i Funkcjach Zarządzania (Transact-SQL).

Uprawnienia dla programu SQL Server 2022 i nowszych

Wymaga uprawnień VIEW DATABASE PERFORMANCE STATE oraz VIEW SECURITY DEFINITION w bazie danych.

Przykłady

A. Zwróć wszystkie liczby dla wszystkich partycji wszystkich indeksów i kopców w bazie danych

Poniższy przykład pokazuje wszystkie liczby dla wszystkich partycji wszystkich indeksów i kopców w bazie AdventureWorks2025.

USE AdventureWorks2022;  
GO  
SELECT * FROM sys.dm_db_partition_stats;  
GO  

B. Zwróć wszystkie liczby dla wszystkich partycji tabeli i jej indeksów

Poniższy przykład pokazuje wszystkie liczby dla wszystkich partycji tabeli HumanResources.Employee i jej indeksów.

USE AdventureWorks2022;  
GO  
SELECT * FROM sys.dm_db_partition_stats   
WHERE object_id = OBJECT_ID('HumanResources.Employee');  
GO  

C. Zwracaj łączną liczbę użytych stron oraz łączną liczbę wierszy dla indeksu sterty lub klastrowanego

Poniższy przykład zwraca łączną liczbę użytych stron oraz łączną liczbę wierszy dla kopca lub klastrowanego indeksu tabeli HumanResources.Employee . Ponieważ tabela Employee nie jest domyślnie podzielona na partycje, należy zauważyć, że suma obejmuje tylko jedną partycję.

USE AdventureWorks2022;  
GO  
SELECT SUM(used_page_count) AS total_number_of_used_pages,   
    SUM (row_count) AS total_number_of_rows   
FROM sys.dm_db_partition_stats  
WHERE object_id=OBJECT_ID('HumanResources.Employee')    AND (index_id=0 or index_id=1);  
GO