Condividi tramite


sys.dm_db_file_space_usage (Transact-SQL)

Restituisce informazioni sull'utilizzo dello spazio per ogni file del database.

Nome colonna

Tipo di dati

Descrizione

database_id

smallint

ID del database.

file_id

smallint

ID del file.

Viene eseguito il mapping di file_id a file_id in sys.dm_io_virtual_file_stats e a fileid in sys.sysfiles.

filegroup_id

smallint

ID del filegroup.

total_page_count

bigint

Numero totale di pagine nel file.

allocated_extent_page_count

bigint

Numero totale di pagine negli extent allocati nel file.

unallocated_extent_page_count

bigint

Numero totale di pagine negli extent non allocati nel file.

Non sono incluse le pagine inutilizzate negli extent allocati.

version_store_reserved_page_count

bigint

Numero totale di pagine negli extent uniformi allocati per l'archivio delle versioni. Le pagine dell'archivio delle versioni non vengono mai allocate dagli extent misti.

Le pagine IAM non vengono incluse perché vengono sempre allocate dagli extent misti. Le pagine PFS vengono incluse se vengono allocate da un extent uniforme.

Per ulteriori informazioni, vedere sys.dm_tran_version_store (Transact-SQL).

user_object_reserved_page_count

bigint

Numero totale di pagine allocate da extent uniformi per gli oggetti utente nel database. Sono incluse nel conteggio le pagine non utilizzate da un extent allocato.

Le pagine IAM non vengono incluse perché vengono sempre allocate dagli extent misti. Le pagine PFS vengono incluse se vengono allocate da un extent uniforme.

È possibile utilizzare la colonna total_pages nella vista del catalogo sys.allocation_units per restituire il conteggio delle pagine riservate di ogni unità di allocazione nell'oggetto utente. Si noti, tuttavia, che la colonna total_pages include pagine IAM.

internal_object_reserved_page_count

bigint

Numero totale di pagine negli extent uniformi allocate per gli oggetti interni nel file. Sono incluse nel conteggio le pagine non utilizzate da un extent allocato.

Le pagine IAM non vengono incluse perché vengono sempre allocate dagli extent misti. Le pagine PFS vengono incluse se vengono allocate da un extent uniforme.

Non esistono viste del catalogo o oggetti a gestione dinamica che restituiscono il conteggio delle pagine di ogni oggetto interno.

mixed_extent_page_count

bigint

Numero totale di pagine allocate e non allocate negli extent misti allocati nel file. Gli extent misti contengono le pagine allocate a oggetti diversi. In questo conteggio sono incluse tutte le pagine IAM nel file.

Osservazioni

I conteggi di pagine vengono sempre eseguiti a livello di extent. I relativi valori saranno pertanto sempre multipli di otto. Agli extent contenenti le pagine di allocazione GAM (Global Allocation Map, mappa di allocazione globale) e SGAM (Shared Global Allocation Map, mappa di allocazione globale condivisa) vengono allocati extent uniformi. Non vengono inclusi nei conteggi di pagine precedentemente descritti.

Il contenuto dell'archivio delle versioni corrente è disponibile in sys.dm_tran_version_store. Viene tenuto traccia delle pagine dell'archivio delle versioni a livello di file anziché a livello di sessione o attività in quanto tali pagine sono risorse globali. Una sessione può generare versioni, ma le versioni non possono essere rimosse al termine della sessione. È necessario considerare l'operazione di pulizia dell'archivio delle versioni come la transazione con esecuzione più lunga che deve accedere alla versione precedente. Per individuare la transazione con esecuzione più lunga relativa alla pulizia dell'archivio delle versioni, visualizzare la colonna elapsed_time_seconds in sys.dm_tran_active_snapshot_database_transactions.

Frequenti modifiche nella colonna mixed_extent_page_count possono indicare un utilizzo intenso di pagine SGAM. In questo caso, è possibile rilevare numerose attese PAGELATCH_UP in cui la risorsa attesa è una pagina SGAM. Per ulteriori informazioni, vedere sys.dm_os_waiting_tasks (Transact-SQL), sys.dm_os_wait_stats (Transact-SQL) e sys.dm_os_latch_stats (Transact-SQL).

Oggetti utente

Nei contatori di pagine di oggetti utente sono inclusi gli oggetti seguenti:

  • Tabelle e indici definiti dall'utente

  • Tabelle e indici di sistema

  • Tabelle e indici temporanei globali

  • Tabelle e indici temporanei locali

  • Variabili di tabella

  • Tabelle restituite nelle funzioni con valori di tabella

Oggetti interni

Gli oggetti interni sono solo in tempdb. Gli oggetti seguenti vengono inclusi nei contatori di pagine degli oggetti interni:

  • Tabelle di lavoro per operazioni cursore o spool e archiviazione di oggetti LOB (Large Object) temporanei

  • File di lavoro per le operazioni quali un hash join

  • Operazioni di ordinamento

Cardinalità delle relazioni

Da

A

Relazione

sys.dm_db_file_space_usage.database_id, file_id

sys.dm_io_virtual_file_stats.database_id, file_id

Uno-a-uno

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE nel server.

Vedere anche

Riferimento

Funzioni e viste a gestione dinamica (Transact-SQL)

Viste a gestione dinamica relative ai database (Transact-SQL)

sys.dm_db_task_space_usage (Transact-SQL)

sys.dm_db_session_space_usage (Transact-SQL)