sys.dm_db_file_space_usage (Transact-SQL)

Aplica-se a: simSQL Server (todas as versões compatíveis) SimBanco de Dados SQL do Azure SimInstância Gerenciada do Azure SQL simAzure Synapse Analytics simParallel Data Warehouse

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

Observação

Para chamar isso de Azure Synapse Analytics ou , use o nome PDW (Analytics Platform System) sys.dm_pdw_nodes_db_file_space_usage. 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
database_id smallint ID do banco de dados.
file_id smallint ID do arquivo.

file_id mapeia para file_id no sys.dm_io_virtual_file_stats e para fileid em sys.sysfiles.
filegroup_id smallint Aplica-se a: SQL Server 2012 (11.x) e posterior.

ID do grupo de arquivos.
total_page_count bigint Aplica-se a: SQL Server 2012 (11.x) e posterior.

Número total de páginas no arquivo de dados.
allocated_extent_page_count bigint Aplica-se a: SQL Server 2012 (11.x) e posterior.

Número total de páginas nas extensão alocadas no arquivo de dados.
unallocated_extent_page_count bigint Número total de páginas nas extensão não alocadas no arquivo de dados.

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, veja 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 total_pages na exibição do 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.
modified_extent_page_count bigint Aplica-se ao: SQL Server 2016 (13.x) SP2 e posterior.

Número total de páginas modificadas em extensão alocada do arquivo desde o último backup completo do banco de dados. A contagem de páginas modificada pode ser usada para acompanhar a quantidade de alterações diferenciais no banco de dados desde o último backup completo, para decidir se o backup diferencial é necessário.
pdw_node_id int Aplica-se a: Azure Synapse Analytics , PDW (Analytics Platform System)

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

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

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. Para obter mais informações sobre páginas e extensão, consulte Guia de arquitetura de páginas e de extensão.

O conteúdo do armazenamento de versão atual está 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 de execução mais longa relacionada à limpeza do armazenamento de versão pode ser descoberta exibindo a coluna elapsed_time_seconds no sys.dm_tran_active_snapshot_database_transactions.

Mudanças 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

Só há objetos internos 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 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 de relações

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

em SQL Server e SQL Instância Gerenciada, requer VIEW SERVER STATE permissão.

em Banco de Dados SQL objetivos de serviço básico, S0 e S1 , e para bancos de dados em pools elásticos, a conta de administrador do servidor , a conta de administrador do Azure Active Directory ou a associação na ##MS_ServerStateReader## função de servidor é necessária. em todos os outros Banco de Dados SQL objetivos de serviço, a VIEW DATABASE STATE permissão no banco de dados ou a associação na ##MS_ServerStateReader## função de servidor é necessária.

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 total de espaço livre em megabytes (MB) disponível em todos os arquivos de dados em 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;

Confira também