Partilhar via


sys.dm_db_partition_stats (Transact-SQL)

Aplica-se a:Banco de Dados SQL dodo AzureInstância Gerenciada SQL do Azuredo Azure Synapse Analyticsdo Analytics Platform System (PDW)Banco de Dados SQL no Microsoft Fabric

Devolve informações de página e contagem de linhas para cada partição na base de dados atual.

Observação

Para chamar isso do Azure Synapse Analytics ou do Analytics Platform System (PDW), use o nome sys.dm_pdw_nodes_db_partition_stats. A partition_id em sys.dm_pdw_nodes_db_partition_stats difere da partition_id na sys.partitions vista de catálogo do Azure Synapse Analytics. Essa sintaxe não é suportada pelo pool SQL sem servidor no Azure Synapse Analytics.

Nome da coluna Tipo de dados Description
partition_id bigint ID da partição. Isso é exclusivo dentro de um banco de dados. Este é o mesmo valor que partition_id na sys.partitions visualização de catálogo, exceto para o Azure Synapse Analytics.
object_id int ID de objeto da tabela ou da vista indexada da qual a partição faz parte.
index_id int ID do heap ou índice do qual a partição faz parte.

0 = Pilha
1 = Índice agrupado.
> 1 = Índice não agrupado
partition_number int Número de partição baseado em 1 dentro do índice ou heap.
in_row_data_page_count bigint Número de páginas em uso para armazenar dados em linha nesta partição. Se a partição faz parte de um heap, o valor é o número de páginas de dados no heap. Se a partição fizer parte de um índice, o valor é o número de páginas ao nível da folha. (As páginas sem folha na árvore B+ não estão incluídas na contagem.) As páginas IAM (Index Allocation Map) não estão incluídas em nenhum dos casos. Sempre 0 para um índice de coluna otimizado para memória xVelocity.
in_row_used_page_count bigint Número total de páginas utilizadas para armazenar e gerir os dados em linha nesta partição. Esta contagem inclui páginas de árvore B+ sem folhas, páginas IAM e todas as páginas incluídas na coluna in_row_data_page_count . Sempre 0 para um índice de columnstore.
in_row_reserved_page_count bigint Número total de páginas reservadas para armazenar e gerir dados em linha nesta partição, independentemente de as páginas estarem em uso ou não. Sempre 0 para um índice de columnstore.
lob_used_page_count bigint Número de páginas em uso para armazenar e gerir texto fora da linha, ntext, imagem, varchar(max), nvarchar(max), varbinary(max) e colunas xml dentro da partição. Estão incluídas as páginas do IAM.

Número total de LOBs usados para armazenar e gerir o índice de column store na partição.
lob_reserved_page_count bigint Número total de páginas reservadas para armazenar e gerir texto fora da linha, ntext, imagem, varchar(max),nvarchar(max), varbinary(max) e colunas xml dentro da partição, independentemente de as páginas estarem em uso ou não. Estão incluídas as páginas do IAM.

Número total de LOBs reservados para armazenar e gerir um índice de column store na partição.
row_overflow_used_page_count bigint Número de páginas em uso para armazenar e gerir colunas varchar, nvarchar, varbinary e sql_variant de linhas dentro da partição. Estão incluídas as páginas do IAM.

Sempre 0 para um índice de columnstore.
row_overflow_reserved_page_count bigint Número total de páginas reservadas para armazenar e gerir colunas varchar, nvarchar, varbinary e sql_variant de linhas dentro da partição, independentemente de as páginas estarem em uso ou não. Estão incluídas as páginas do IAM.

Sempre 0 para um índice de columnstore.
used_page_count bigint Número total de páginas usadas para a partição. Calculado como in_row_used_page_count + lob_used_page_count + row_overflow_used_page_count.
reserved_page_count bigint Número total de páginas reservadas para a partição. Calculado como in_row_reserved_page_count + lob_reserved_page_count + row_overflow_reserved_page_count.
row_count bigint O número aproximado de linhas na partição.
pdw_node_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O identificador do nó em que esta distribuição se encontra.
distribution_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

O ID numérico único associado à distribuição.

Observações

A sys.dm_db_partition_stats vista de gestão dinâmica (DMV) apresenta informações sobre o espaço utilizado para armazenar e gerir dados em linha, dados LOB e dados de sobrecarga de linhas para todas as partições numa base de dados. Uma linha é exibida por partição.

As contagens em que a saída se baseia são armazenadas em cache na memória ou armazenadas em disco em várias tabelas do sistema.

Os dados em linha, dados LOB e dados de overflow de linhas representam as três unidades de alocação que compõem uma partição. A vista de catálogo sys.allocation_units pode ser consultada para obter metadados sobre cada unidade de alocação na base de dados.

Se um heap ou índice não for particionado, é composto por uma partição (com número de partição = 1); portanto, apenas uma linha é devolvida para esse heap ou índice. A vista de catálogo sys.partitions pode ser consultada para obter metadados sobre cada partição de todas as tabelas e índices de uma base de dados.

A contagem total para uma tabela individual ou um índice pode ser obtida somando as contagens de todas as partições relevantes.

Permissions

Requer VIEW DATABASE STATE permissões VIEW DEFINITION para consultar a sys.dm_db_partition_stats vista de gestão dinâmica. Para mais informações sobre permissões em vistas de gestão dinâmica, consulte Vistas e Funções de Gestão Dinâmica (Transact-SQL).

Permissões para SQL Server 2022 e posterior

Requer permissões VER ESTADO DE DESEMPENHO DA BASE DE DADOS e VER DEFINIÇÃO DE SEGURANÇA na base de dados.

Examples

A. Devolver todas as contagens de todas as partições de todos os índices e heaps numa base de dados

O exemplo seguinte mostra todas as contagens para todas as partições de todos os índices e heaps na base de dados AdventureWorks2025.

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

B. Devolva todas as contagens de todas as partições de uma tabela e dos seus índices

O exemplo seguinte mostra todas as contagens para todas as partições da HumanResources.Employee tabela e os seus índices.

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

C. Devolve o total de páginas usadas e o número total de linhas para um heap ou índice agrupado

O exemplo seguinte devolve o total de páginas usadas e o número total de linhas para o heap ou índice agrupado da HumanResources.Employee tabela. Como a Employee tabela não está particionada por defeito, note que a soma inclui apenas uma partição.

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