sys.dm_db_partition_stats (Transact-SQL)

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

Nome da coluna

Tipo de dados

Descrição

partition_id

bigint

ID da partição. É exclusiva em um banco de dados. Este é o mesmo valor que o partition_id na exibição de catálogo sys.partitions

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 da partição baseado em 1 no índice ou no 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 são incluídas na contagem.) As páginas IAM não são incluídas em nenhum caso.

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. Esta conta 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.

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.

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.

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.

row_overflow_used_page_count

bigint

Número de páginas em uso para armazenar e administrar colunas varchar, nvarchar, varbinarye sql_variant na partição. As páginas IAM são incluídas.

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.

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.

Comentários

sys.dm_db_partition_stats exibe informações sobre o espaço usado para armazenar e gerenciar dados LOB de dados em linha 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 tem como base são armazenadas em cache na memória ou armazenadas em disco nas diversas 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. Para obter mais informações sobre unidades de alocação, consulte Organização de tabela e índice. 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. Para obter mais informações sobre partições, consulte Organização de tabela e í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 permissão VIEW DATABASE STATE para consultar a exibição de gerenciamento dinâmico sys.dm_db_partition_stats. Para obter mais informações sobre permissões em exibições de gerenciamento dinâmico, consulte Exibições e funções de gerenciamento dinâmico (Transact-SQL).

Exemplos

A. Retornando todas as contagens de 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 AdventureWorks2008R2.

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

B. Retornando todas as contagens de 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 AdventureWorks2008R2;
GO
SELECT * FROM sys.dm_db_partition_stats 
WHERE object_id = OBJECT_ID('HumanResources.Employee');
GO

C. Retornando o total de páginas usadas e 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 AdventureWorks2008R2;
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