Compartilhar via


sys.dm_db_partition_stats (Transact-SQL)

Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics Analytics Platform System (PDW)

Retorna informações de contagem de linhas e páginas para toda partição no banco de dados atual.

Observação

Para chamar isso do Azure Synapse Analytics ou do PDW (Analytics Platform System), use o nome sys.dm_pdw_nodes_db_partition_stats. O partition_id é sys.dm_pdw_nodes_db_partition_stats diferente do partition_id na exibição de catálogo do sys.partitions Azure Synapse Analytics. Não há suporte a essa sintaxe para o pool de SQL sem servidor no Azure Synapse Analytics.

Nome da coluna Tipo de dados Descrição
partition_id bigint ID da partição. É exclusiva em um banco de dados. Esse é o mesmo valor que o na exibição do catálogo, exceto para o partition_id sys.partitions Azure Synapse Analytics.
object_id int ID de objeto da tabela ou exibição indexada da qual a partição faz parte.
index_id int ID do heap ou índice do qual a partição faz parte.

0 = Heap
1 = Índice clusterizado.
> 1 = Índice não clusterizado
partition_number int Número de partição com base 1 no í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 fizer parte de um heap, o valor será o número de páginas de dados no heap. Se a partição fizer parte de um índice, o valor será o número de páginas no nível folha. (Páginas não folha na árvore B+ não estão incluídas na contagem.) As páginas IAM (Mapa de Alocação de Índice) não estão incluídas em nenhum dos casos. Sempre 0 para um índice columnstore xVelocity de memória otimizada.
in_row_used_page_count bigint Número total de páginas em uso para armazenar e gerenciar os dados em linha nesta partição. Essa contagem inclui páginas não folha da árvore B+, páginas IAM e todas as páginas incluídas na coluna in_row_data_page_count. Sempre 0 para um índice columnstore.
in_row_reserved_page_count bigint Número total de páginas reservadas para armazenar e gerenciar dados em linha nesta partição, independentemente do fato de as páginas estarem ou não em uso. Sempre 0 para um índice columnstore.
lob_used_page_count bigint Número de páginas em uso para armazenar e gerenciar colunas text, ntext, image, varchar(max), nvarchar(max), varbinary(max) e xml fora de linha na partição. As páginas IAM são incluídas.

Número total de LOBs usados para armazenar e gerenciar o índice columnstore na partição.
lob_reserved_page_count bigint Número total de páginas reservadas para armazenar e gerenciar colunas text, ntext, image, varchar(max), nvarchar(max), varbinary(max) e xml fora de linha na partição, independentemente do fato de as páginas estarem ou não em uso. As páginas IAM são incluídas.

Número total de LOBs reservados para armazenar e gerenciar o índice columnstore na partição.
row_overflow_used_page_count bigint Número de páginas em uso para armazenar e gerenciar colunas varchar, nvarchar, varbinary e sql_variant na partição. As páginas IAM são incluídas.

Sempre 0 para um índice columnstore.
row_overflow_reserved_page_count bigint Número total de páginas reservadas para armazenar e gerenciar colunas varchar, nvarchar, varbinary e sql_variant excedentes de linha na partição, independentemente do fato de as páginas estarem ou não em uso. As páginas IAM são incluídas.

Sempre 0 para um índice columnstore.
used_page_count bigint Número total de páginas usadas para a partição. Computado 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. Computado 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 essa distribuição está ativada.
distribution_id int Aplica-se a: Azure Synapse Analytics, Analytics Platform System (PDW)

A ID numérica exclusiva associada à distribuição.

Comentários

A sys.dm_db_partition_stats exibição de gerenciamento dinâmico (DMV) exibe informações sobre o espaço usado para armazenar e gerenciar dados em linha, dados LOB e dados de estouro de linha para todas as partições em um banco de dados. É exibida uma linha por partição.

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

Dados em linha, dados LOB e dados de estouro de linha representam as três unidades de alocação que compõem uma partição. A exibição de catálogo sys.allocation_units pode ser consultada por metadados sobre cada unidade de alocação no banco de dados.

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

A contagem total para uma tabela ou índice individual pode ser obtida pela adição das contagens de todas as partições relevantes.

Permissões

Requer VIEW DATABASE STATE permissões e VIEW DEFINITION para consultar a sys.dm_db_partition_stats exibição de gerenciamento dinâmico. Para obter mais informações sobre permissões nas exibições de gerenciamento dinâmico, confira Exibições e funções de gerenciamento dinâmico (Transact-SQL).

Permissões do SQL Server 2022 e posteriores

Requer permissões VIEW DATABASE PERFORMANCE STATE e VIEW SECURITY DEFINITION no banco de dados.

Exemplos

R. Retornar todas as contagens para todas as partições de todos os índices e heaps em um banco de dados

O exemplo a seguir mostra todas as contagens de todas as partições de todos os índices e heaps no banco de dados AdventureWorks2022.

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

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

O exemplo a seguir mostra todas as contagens de todas as partições da tabela HumanResources.Employee e seus índices.

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

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

O exemplo a seguir retorna o total de páginas usadas e o número total de linhas para o heap ou índice clusterizado da tabela HumanResources.Employee. Como a tabela Employee não é particionada por padrão, observe que a soma inclui somente 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