Share via


sys.dm_db_file_space_usage (Transact-SQL)

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

[!NOTA]

Questa vista è applicabile solo al database tempdb.

Nome colonna

Tipo di dati

Descrizione

database_id

smallint

ID del database.

file_id

smallint

ID del file.

L'opzione file_id viene mappata a file_id in sys.dm_io_virtual_file_stats e a fileid in sys.sysfiles.

unallocated_extent_page_count

bigint

Numero totale di pagine negli extent non allocati nel file. Per ulteriori informazioni, vedere Informazioni su pagine ed extent.

Non sono incluse le pagine non utilizzate 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 le 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 variazioni nella colonna mixed_extent_page_count possono indicare un frequente utilizzo 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). Per ulteriori informazioni sulle pagine SGAM, vedere Gestione delle allocazioni di extent e dello spazio libero.

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. Nei contatori di pagine di oggetti interni sono inclusi gli oggetti seguenti:

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

  • File di lavoro per 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.

Esempi

Per esempi sull'utilizzo della vista sys.dm_db_file_space_usage, vedere Risoluzione dei problemi relativi allo spazio su disco insufficiente in tempdb.