Compartilhar via


sys.dm_db_file_space_usage (Transact-SQL)

Retorna informações de uso do espaço de cada arquivo no banco de dados.

Aplica-se a: SQL Server (SQL Server 2008 à versão atual).

Nome da coluna

Tipo de dados

Descrição

database_id

smallint

ID do banco de dados.

file_id

smallint

ID do arquivo.

file_id é mapeado para file_id em sys.dm_io_virtual_file_stats e para fileid em sys.sysfiles.

filegroup_id

smallint

ID do grupo de arquivos.

Aplica-se a: SQL Server 2012 a SQL Server 2014.

total_page_count

bigint

Número total de páginas no arquivo.

Aplica-se a: SQL Server 2012 a SQL Server 2014.

allocated_extent_page_count

bigint

Número total de páginas nas extensões alocadas no arquivo.

Aplica-se a: SQL Server 2012 a SQL Server 2014.

unallocated_extent_page_count

bigint

Número total de páginas nas extensões não alocadas no arquivo.

Páginas não utilizadas em extensões alocadas não são incluídas.

version_store_reserved_page_count

bigint

Número total de páginas nas extensões uniformes alocadas para o repositório de versão. As páginas do repositório de versão nunca são alocadas de eventos mistos.

Páginas IAM não são incluídas, pois são sempre são alocadas de extensões mistas. As páginas PFS serão incluídas se forem alocadas de uma extensão uniforme.

Para obter mais informações, consulte sys.dm_tran_version_store (Transact-SQL).

user_object_reserved_page_count

bigint

Número total de páginas alocadas de extensões uniformes para objetos de usuário no banco de dados. Páginas não usadas de uma extensão alocada são incluídas na contagem.

Páginas IAM não são incluídas, pois são sempre são alocadas de extensões mistas. As páginas PFS serão incluídas se forem alocadas de uma extensão uniforme.

Você pode usar a coluna total_pages na exibição de catálogo sys.allocation_units para retornar a contagem de páginas reservadas de cada unidade de alocação no objeto de usuário. No entanto, observe que a coluna total_pages inclui páginas IAM.

internal_object_reserved_page_count

bigint

Número total de páginas nas extensões uniformes alocadas para objetos internos no arquivo. Páginas não usadas de uma extensão alocada são incluídas na contagem.

Páginas IAM não são incluídas, pois são sempre são alocadas de extensões mistas. As páginas PFS serão incluídas se forem alocadas de uma extensão uniforme.

Não há exibição do catálogo ou objeto de gerenciamento dinâmico que retorne a contagem de páginas de cada objeto interno.

mixed_extent_page_count

bigint

Número total de páginas alocadas e não alocadas nas extensões mistas alocadas no arquivo. As extensões mistas contêm páginas alocadas a objetos diferentes. Essa contagem inclui todas as páginas IAM no arquivo.

Comentários

As contagens de página estão sempre no nível de extensão. Portanto, os valores de contagem de página serão sempre um múltiplo de oito. As extensões que contêm páginas de alocação GAM (Global Alocação Map) e SGAM (Shared Global Allocation Map) são extensões uniformes alocadas. Elas não são incluídas nas contagens de página previamente descritas.

O conteúdo do repositório de versão atual está em sys.dm_tran_version_store. As páginas de repositório de versão são controladas no nível de arquivo, em vez de no nível de sessão e tarefa, porque são recursos globais. Uma sessão pode gerar versões, mas as versões não podem ser removidas quando a sessão terminar. A limpeza total do repositório de versão deve considerar a transação mais longa em execução que exige acesso à versão particular. A transação mais longa em execução relacionada à limpeza do repositório de versão pode ser descoberta por meio da exibição da coluna elapsed_time_seconds em sys.dm_tran_active_snapshot_database_transactions.

Alterações frequentes na coluna mixed_extent_page_count podem indicar uso pesado de páginas SGAM. Quando isso ocorrer, você poderá ver muitas esperas de PAGELATCH_UP nas quais o recurso de espera é uma página SGAM. Para obter mais informações, consulte sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL) e sys.dm_os_latch_stats (Transact-SQL).

Objetos do usuário

Os objetos a seguir são incluídos nos contadores de páginas de objeto do usuário:

  • Tabelas e índices definidos pelo usuário

  • Índices e tabelas do sistema

  • Tabelas e índices temporários globais

  • Tabelas e índices temporários locais

  • Variáveis de tabela

  • Tabelas retornadas nas funções com valor de tabela

Objetos internos

Objetos internos estão apenas em tempdb. Os seguintes objetos são incluídos nos contadores de páginas de objeto de usuário:

  • Tabelas de trabalho para operações de cursor ou de spool e armazenamento temporário de LOB (Objeto Grande)

  • Arquivos de trabalho para operações, como junção de hash

  • Execuções de classificação

Cardinalidades da relação

De

Para

Relação

sys.dm_db_file_space_usage.database_id, file_id

sys.dm_io_virtual_file_stats.database_id, file_id

Um para um

Permissões

Requer a permissão VIEW SERVER STATE no servidor.

Exemplos

Determinando a quantidade de espaço livre em tempdb

A consulta a seguir retorna o número total de páginas livres e o espaço livre total em megabytes (MB) disponível em todos os arquivos no tempdb.

USE tempdb;
GO
SELECT SUM(unallocated_extent_page_count) AS [free pages], 
(SUM(unallocated_extent_page_count)*1.0/128) AS [free space in MB]
FROM sys.dm_db_file_space_usage;

Determinando o volume de espaço usado por objetos do usuário

A consulta a seguir retorna o número total de páginas usadas por objetos do usuário e o espaço total em MB usado por objetos internos em tempdb.

USE tempdb;
GO
SELECT SUM(user_object_reserved_page_count) AS [user object pages used],
(SUM(user_object_reserved_page_count)*1.0/128) AS [user object space in MB]
FROM sys.dm_db_file_space_usage;

Consulte também

Referência

Exibições e funções de gerenciamento dinâmico (Transact-SQL)

Exibições de gerenciamento dinâmico relacionadas a bancos de dados (Transact-SQL)

sys.dm_db_task_space_usage (Transact-SQL)

sys.dm_db_session_space_usage (Transact-SQL)